diff options
| author | Christophe Matthieu <chm@odoo.com> | 2016-05-02 16:03:48 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2016-06-14 09:46:25 +0200 |
| commit | 7ede9bcb2de9d52994b3a6fcb84edc3f81d60284 (patch) | |
| tree | bf91070143134b5b5ef31334c913bf52089c6710 /addons | |
| parent | 3ebf46fcc0ca048fcc1d433a073b94e64fb7049c (diff) | |
[IMP] base ir.qweb: compile template (and use ast) to improve rendering speed
* The compiled templates are cached per user, lang, inherit context values
* ir.ui.fields: attributes method return an dict, and record_to_html return only the content value of the field
* all rendered text use build_text and all attributes use build_attribute
* t-esc-options is removed and replace by format_value method
* AssetsBundle receive the list files and remains
Diffstat (limited to 'addons')
24 files changed, 404 insertions, 401 deletions
diff --git a/addons/account/views/report_agedpartnerbalance.xml b/addons/account/views/report_agedpartnerbalance.xml index e4e3a8451b3..560c711be9b 100644 --- a/addons/account/views/report_agedpartnerbalance.xml +++ b/addons/account/views/report_agedpartnerbalance.xml @@ -50,13 +50,13 @@ </tr> <tr t-if="get_partner_lines"> <th>Account Total</th> - <th class="text-right"><span t-esc="get_direction[6]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> - <th class="text-right"><span t-esc="get_direction[4]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> - <th class="text-right"><span t-esc="get_direction[3]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> - <th class="text-right"><span t-esc="get_direction[2]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> - <th class="text-right"><span t-esc="get_direction[1]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> - <th class="text-right"><span t-esc="get_direction[0]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> - <th class="text-right"><span t-esc="get_direction[5]" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></th> + <th class="text-right"><span t-esc="format(get_direction[6], 'monetary', res_company.currency_id)"/></th> + <th class="text-right"><span t-esc="format(get_direction[4], 'monetary', res_company.currency_id)"/></th> + <th class="text-right"><span t-esc="format(get_direction[3], 'monetary', res_company.currency_id)"/></th> + <th class="text-right"><span t-esc="format(get_direction[2], 'monetary', res_company.currency_id)"/></th> + <th class="text-right"><span t-esc="format(get_direction[1], 'monetary', res_company.currency_id)"/></th> + <th class="text-right"><span t-esc="format(get_direction[0], 'monetary', res_company.currency_id)"/></th> + <th class="text-right"><span t-esc="format(get_direction[5], 'monetary', res_company.currency_id)"/></th> </tr> </thead> <tbody> @@ -65,25 +65,25 @@ <span t-esc="partner['name']"/> </td> <td class="text-right"> - <span t-esc="partner['direction']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['direction'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="partner['4']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['4'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="partner['3']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['3'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="partner['2']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['2'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="partner['1']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['1'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="partner['0']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['0'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="partner['total']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(partner['total'], 'monetary', res_company.currency_id)"/> </td> </tr> </tbody> diff --git a/addons/account/views/report_financial.xml b/addons/account/views/report_financial.xml index 2647ed10fa7..692e0bc2676 100644 --- a/addons/account/views/report_financial.xml +++ b/addons/account/views/report_financial.xml @@ -43,13 +43,13 @@ <span t-att-style="style" t-esc="a.get('name')"/> </td> <td class="text-right" style="white-space: text-nowrap;"> - <span t-att-style="style" t-esc="a.get('debit')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-att-style="style" t-esc="format(a.get('debit'), 'monetary', res_company.currency_id)"/> </td> <td class="text-right" style="white-space: text-nowrap;"> - <span t-att-style="style" t-esc="a.get('credit')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-att-style="style" t-esc="format(a.get('credit'), 'monetary', res_company.currency_id)"/> </td> <td class="text-right" style="white-space: text-nowrap;"> - <span t-att-style="style" t-esc="a.get('balance')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-att-style="style" t-esc="format(a.get('balance'), 'monetary', res_company.currency_id)"/> </td> </t> </tr> @@ -73,7 +73,7 @@ <span style="color: white;" t-esc="'..' * a.get('level', 0)"/> <span t-att-style="style" t-esc="a.get('name')"/> </td> - <td class="text-right"><span t-att-style="style" t-esc="a.get('balance')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td class="text-right"><span t-att-style="style" t-esc="format(a.get('balance'), 'monetary', res_company.currency_id)"/></td> </t> </tr> </tbody> @@ -96,7 +96,7 @@ <span style="color: white;" t-esc="'..'"/> <span t-att-style="style" t-esc="a.get('name')"/> </td> - <td class="text-right"><span t-att-style="style" t-esc="a.get('balance')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td class="text-right"><span t-att-style="style" t-esc="format(a.get('balance'), 'monetary', res_company.currency_id)"/></td> <td class="text-right"><span t-att-style="style" t-esc="a.get('balance_cmp')"/></td> </t> </tr> diff --git a/addons/account/views/report_generalledger.xml b/addons/account/views/report_generalledger.xml index 9e2300098b1..7ef9fef28dc 100644 --- a/addons/account/views/report_generalledger.xml +++ b/addons/account/views/report_generalledger.xml @@ -66,13 +66,13 @@ <span t-esc="account['name']"/> </td> <td class="text-right"> - <span t-esc="account['debit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(account['debit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="account['credit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(account['credit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="account['balance']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(account['balance'], 'monetary', res_company.currency_id)"/> </td> <td groups="base.group_multi_currency"/> </tr> @@ -84,13 +84,13 @@ <td><span t-esc="line['move_name']"/></td> <td><span t-esc="line['lname']"/></td> <td class="text-right"> - <span t-esc="line['debit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(line['debit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="line['credit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(line['credit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="line['balance']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(line['balance'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right" groups="base.group_multi_currency"> <span t-esc="line['amount_currency'] if line['amount_currency'] > 0.00 else ''"/> diff --git a/addons/account/views/report_journal.xml b/addons/account/views/report_journal.xml index 73926363f09..76ff18c7799 100644 --- a/addons/account/views/report_journal.xml +++ b/addons/account/views/report_journal.xml @@ -51,10 +51,10 @@ <td><span t-field="aml.account_id.code"/></td> <td><span t-esc="aml.partner_id and aml.partner_id.name[:23] or ''"/></td> <td><span t-esc="aml.name[:35]"/></td> - <td><span t-esc="aml.debit" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> - <td><span t-esc="aml.credit" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(aml.debit, 'monetary', res_company.currency_id)"/></td> + <td><span t-esc="format(aml.credit, 'monetary', res_company.currency_id)"/></td> <td t-if="data['form']['amount_currency'] and aml.amount_currency"> - <span t-esc="aml.amount_currency" t-esc-options='{"widget": "monetary", "display_currency": "aml.currency_id"}'/> + <span t-esc="format(aml.amount_currency, 'monetary', aml.currency_id)"/> </td> </tr> </tbody> @@ -65,8 +65,8 @@ <table class="table table-condensed"> <tr> <td><strong>Total</strong></td> - <td><span t-esc="sum_debit(data, o)" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> - <td><span t-esc="sum_credit(data, o)" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(sum_debit(data, o), 'monetary', res_company.currency_id)"/></td> + <td><span t-esc="format(sum_credit(data, o), 'monetary', res_company.currency_id)"/></td> </tr> </table> </div> @@ -87,8 +87,8 @@ <t t-set="taxes" t-value="get_taxes(data, o)"/> <tr t-foreach="taxes" t-as="tax"> <td><span t-esc="tax.name"/></td> - <td><span t-esc="taxes[tax]['base_amount']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> - <td><span t-esc="taxes[tax]['tax_amount']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(taxes[tax]['base_amount'], 'monetary', res_company.currency_id)"/></td> + <td><span t-esc="format(taxes[tax]['tax_amount'], 'monetary', res_company.currency_id)"/></td> </tr> </tbody> </table> diff --git a/addons/account/views/report_overdue.xml b/addons/account/views/report_overdue.xml index 668cdc790b3..8071c8d7601 100644 --- a/addons/account/views/report_overdue.xml +++ b/addons/account/views/report_overdue.xml @@ -44,10 +44,10 @@ <span t-esc="line['ref']"/> </td> <td class="text-right"> - <span t-esc="line['debit']" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/> + <span t-esc="format(line['debit'], 'monetary', currency)"/> </td> <td class="text-right"> - <span t-esc="line['credit']" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/> + <span t-esc="format(line['credit'], 'monetary', currency)"/> </td> <td class="text-center"> <span t-if="line['blocked']">x</span> @@ -56,16 +56,16 @@ <tr> <td colspan="3"></td> <td><strong>Sub-Total :</strong></td> - <td class="text-right"><span t-esc="Totals[o.id][currency]['due']" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/></td> - <td class="text-right"><span t-esc="Totals[o.id][currency]['paid']" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/></td> - <td class="text-right"><span t-esc="Totals[o.id][currency]['mat']" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/></td> + <td class="text-right"><span t-esc="format(Totals[o.id][currency]['due'], 'monetary', currency)"/></td> + <td class="text-right"><span t-esc="format(Totals[o.id][currency]['paid'], 'monetary', currency)"/></td> + <td class="text-right"><span t-esc="format(Totals[o.id][currency]['mat'], 'monetary', currency)"/></td> <td></td> </tr> <tr> <td colspan="3"></td> <td><strong>Balance :</strong></td> <td class="text-right"> - <span t-esc="Totals[o.id][currency]['due'] - Totals[o.id][currency]['paid']" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/> + <span t-esc="format(Totals[o.id][currency]['due'] - Totals[o.id][currency]['paid'], 'monetary', currency)"/> </td> </tr> </table> diff --git a/addons/account/views/report_partnerledger.xml b/addons/account/views/report_partnerledger.xml index e8cb8c3e263..94ac9b0d4b6 100644 --- a/addons/account/views/report_partnerledger.xml +++ b/addons/account/views/report_partnerledger.xml @@ -46,13 +46,13 @@ - <strong t-esc="o.name"/> </td> <td class="text-right"> - <strong t-esc="sum_partner(data, o, 'debit')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <strong t-esc="format(sum_partner(data, o, 'debit'), 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <strong t-esc="sum_partner(data, o, 'credit')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <strong t-esc="format(sum_partner(data, o, 'credit'), 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <strong t-esc="sum_partner(data, o, 'debit - credit')" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <strong t-esc="format(sum_partner(data, o, 'debit - credit'), 'monetary', res_company.currency_id)"/> </td> </tr> <tr t-foreach="lines(data, o)" t-as="line"> @@ -69,16 +69,16 @@ <span t-esc="line['displayed_name']"/> </td> <td class="text-right"> - <span t-esc="line['debit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(line['debit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="line['credit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(line['credit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="line['progress']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(line['progress'], 'monetary', res_company.currency_id)"/> </td> <td t-if="amount_currency"> - <span t-esc="line['amount_currency']" t-esc-options='{"widget": "monetary", "display_currency": "line[\"currency_id\"]"}'/> + <span t-esc="format(line['amount_currency'], 'monetary', line['currency_id'])"/> </td> </tr> </tbody> diff --git a/addons/account/views/report_trialbalance.xml b/addons/account/views/report_trialbalance.xml index 5470f6385ed..7ada5bc393b 100644 --- a/addons/account/views/report_trialbalance.xml +++ b/addons/account/views/report_trialbalance.xml @@ -50,13 +50,13 @@ <span t-att-style="style" t-esc="account['name']"/> </td> <td class="text-right"> - <span t-att-style="style" t-esc="account['debit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-att-style="style" t-esc="format(account['debit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-att-style="style" t-esc="account['credit']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-att-style="style" t-esc="format(account['credit'], 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-att-style="style" t-esc="account['balance']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-att-style="style" t-esc="format(account['balance'], 'monetary', res_company.currency_id)"/> </td> </tr> </tbody> diff --git a/addons/l10n_fr/views/report_l10nfrbilan.xml b/addons/l10n_fr/views/report_l10nfrbilan.xml index f5c697c3fad..5923e6a763f 100644 --- a/addons/l10n_fr/views/report_l10nfrbilan.xml +++ b/addons/l10n_fr/views/report_l10nfrbilan.xml @@ -33,11 +33,11 @@ <tr> <td>Capital souscrit - non appelé</td> <td class="text-right"> - <span t-esc="bavar1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar1, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar1, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -59,83 +59,83 @@ <tr> <td>Frais d'établissement</td> <td class="text-right"> - <span t-esc="bavar2" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar2, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar2b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar2b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar2+bavar2b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar2+bavar2b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Frais de recherche et de développement</td> <td class="text-right"> - <span t-esc="bavar3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar3, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar3b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar3b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar3+bavar3b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar3+bavar3b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Concessions, brevets, licences,..., droits et valeurs similaires</td> <td class="text-right"> - <span t-esc="bavar4" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar4, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar4b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar4b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar4+bavar4b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar4+bavar4b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Fonds commercial</td> <td class="text-right"> - <span t-esc="bavar5" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar5, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar5b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar5b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar5+bavar5b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar5+bavar5b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres</td> <td class="text-right"> - <span t-esc="bavar6" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar6, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar6b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar6b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar6+bavar6b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar6+bavar6b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Immobilisations incorporelles en cours</td> <td class="text-right"> - <span t-esc="bavar7" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar7, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar7b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar7b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar7+bavar7b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar7+bavar7b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Avances et acomptes</td> <td class="text-right"> - <span t-esc="bavar8" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar8, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar8" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar8, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -149,71 +149,71 @@ <tr> <td>Terrains</td> <td class="text-right"> - <span t-esc="bavar9" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar9, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar9b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar9b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar9+bavar9b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar9+bavar9b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Constructions</td> <td class="text-right"> - <span t-esc="bavar10" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar10, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar10b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar10b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar10+bavar10b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar10+bavar10b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Installations techniques,matériel et outillage</td> <td class="text-right"> - <span t-esc="bavar11" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar11, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar11b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar11b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar11+bavar11b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar11+bavar11b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres</td> <td class="text-right"> - <span t-esc="bavar12" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar12, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar12b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar12b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar12+bavar12b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar12+bavar12b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Immobilisations corporelles en cours</td> <td class="text-right"> - <span t-esc="bavar13" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar13, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar13b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar13b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar13+bavar13b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar13+bavar13b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Avances et acomptes</td> <td class="text-right"> - <span t-esc="bavar14" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar14, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar14" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar14, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -227,73 +227,73 @@ <tr> <td>Participations</td> <td class="text-right"> - <span t-esc="bavar15" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar15, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar15b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar15b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar15+bavar15b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar15+bavar15b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Créances rattachées à des participations</td> <td class="text-right"> - <span t-esc="bavar16" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar16, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar16b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar16b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar16+bavar16b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar16+bavar16b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Titres immobilisés de l'activité de portefeuille</td> <td class="text-right"> - <span t-esc="bavar17" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar17, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar17b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar17b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar17+bavar17b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar17+bavar17b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres titres immobilisés</td> <td class="text-right"> - <span t-esc="bavar18" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar18, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar18b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar18b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar18+bavar18b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar18+bavar18b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Prêts</td> <td class="text-right"> - <span t-esc="bavar19" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar19, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar19b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar19b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar19+bavar19b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar19+bavar19b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres</td> <td class="text-right"> - <span t-esc="bavar20" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar20, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar20b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar20b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar20+bavar20b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar20+bavar20b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -301,13 +301,13 @@ <strong>TOTAL I</strong> </td> <td class="text-right"> - <span t-esc="at1a" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(at1a, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-at1b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-at1b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="at1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(at1, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -325,59 +325,59 @@ <tr> <td>Matières premières et autres approvisionnements</td> <td class="text-right"> - <span t-esc="bavar21" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar21, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar21b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar21b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar21+bavar21b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar21+bavar21b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>En-cours de production [biens et services]</td> <td class="text-right"> - <span t-esc="bavar22" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar22, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar22b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar22b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar22+bavar22b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar22+bavar22b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Produits intermédiaires et finis</td> <td class="text-right"> - <span t-esc="bavar23" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar23, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar23b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar23b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar23+bavar23b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar23+bavar23b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Marchandises</td> <td class="text-right"> - <span t-esc="bavar24" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar24, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar24b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar24b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar24+bavar24b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar24+bavar24b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Avances et acomptes versés sur commandes</td> <td class="text-right"> - <span t-esc="bavar25" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar25, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar25" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar25, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -389,35 +389,35 @@ <tr> <td>Créances clients et comptes rattachés</td> <td class="text-right"> - <span t-esc="bavar26" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar26, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar26b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar26b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar26+bavar26b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar26+bavar26b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres</td> <td class="text-right"> - <span t-esc="bavar27" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar27, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar27b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar27b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar27+bavar27b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar27+bavar27b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Capital souscrit - appelé , non versé</td> <td class="text-right"> - <span t-esc="bavar28" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar28, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar28" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar28, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -429,55 +429,55 @@ <tr> <td>Actions propres</td> <td class="text-right"> - <span t-esc="bavar29" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar29, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar29b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar29b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar29+bavar29b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar29+bavar29b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres titres</td> <td class="text-right"> - <span t-esc="bavar30" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar30, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-bavar30b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-bavar30b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="bavar30+bavar30b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar30+bavar30b, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Instruments de trésorerie</td> <td class="text-right"> - <span t-esc="bavar31" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar31, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar31" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar31, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Disponibilités</td> <td class="text-right"> - <span t-esc="bavar32" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar32, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar32" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar32, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Charges constatés d'avance</td> <td class="text-right"> - <span t-esc="bavar33" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar33, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar33" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar33, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -485,43 +485,43 @@ <strong>TOTAL II</strong> </td> <td class="text-right"> - <span t-esc="at2a" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(at2a, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-at2b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-at2b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="at2" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(at2, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Charges à répartir sur plusieurs exercices ( III )</td> <td class="text-right"> - <span t-esc="bavar34" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar34, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar34" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar34, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Primes de remboursement des emprunts ( IV )</td> <td class="text-right"> - <span t-esc="bavar35" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar35, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar35" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar35, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Écarts de conversion actif ( V )</td> <td class="text-right"> - <span t-esc="bavar36" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar36, 'monetary', res_company.currency_id)"/> </td> <td></td> <td class="text-right"> - <span t-esc="bavar36" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(bavar36, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -529,13 +529,13 @@ <strong>TOTAL ACTIF ( I + II + III + IV + V )</strong> </td> <td class="text-right"> - <span t-esc="at1a+at2a" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(at1a+at2a, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="-at1b-at2b" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(-at1b-at2b, 'monetary', res_company.currency_id)"/> </td> <td class="text-right"> - <span t-esc="actif" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span t-esc="format(actif, 'monetary', res_company.currency_id)"/> </td> </tr> </table> @@ -549,19 +549,19 @@ </tr> <tr> <td>Capital [dont versé...]</td> - <td><span t-esc="bpvar1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar1, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Primes d'émission, de fusion, d'apport</td> - <td><span t-esc="bpvar2" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar2, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Écarts de réévaluation</td> - <td><span t-esc="bpvar3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar3, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Écart d'équivalence</td> - <td><span t-esc="bpvar4" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar4, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td><strong>RÉSERVES</strong></td> @@ -569,37 +569,37 @@ </tr> <tr> <td>Réserve légale</td> - <td><span t-esc="bpvar5" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar5, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Réserves statutaires ou contractuelles</td> - <td><span t-esc="bpvar6" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar6, 'monetary', res_company.currency_id)"/></td> </tr> <tr> - <td>Réserves réglementées</td><td><span t-esc="bpvar7" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td></tr> + <td>Réserves réglementées</td><td><span t-esc="format(bpvar7, 'monetary', res_company.currency_id)"/></td></tr> <tr> <td>Autres réserves</td> - <td><span t-esc="bpvar8" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar8, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Report à nouveau</td> - <td><span t-esc="bpvar9" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar9, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td><strong>RÉSULTAT DE L'EXERCICE [bénéfice ou perte]</strong></td> - <td><span t-esc="bpvar10" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar10, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Subventions d'investissement</td> - <td><span t-esc="bpvar11" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar11, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Provisions réglementées</td> - <td><span t-esc="bpvar12" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar12, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td class="text-right"><strong>TOTAL I</strong></td> - <td><span t-esc="pt1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(pt1, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td><strong>PROVISIONS</strong></td> @@ -607,15 +607,15 @@ </tr> <tr> <td>Provisions pour risques</td> - <td><span t-esc="bpvar13" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar13, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Provisions pour charges</td> - <td><span t-esc="bpvar14" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar14, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td class="text-right"><strong>TOTAL II</strong></td> - <td><span t-esc="pt2" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(pt2, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td><strong>DETTES</strong></td> @@ -623,59 +623,59 @@ </tr> <tr> <td>Emprunts obligataires convertibles</td> - <td><span t-esc="bpvar15" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar15, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Autres emprunts obligataires</td> - <td><span t-esc="bpvar16" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar16, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Emprunts et dettes auprès des établissements de crédit</td> - <td><span t-esc="bpvar17" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar17, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Emprunts et dettes financières diverses</td> - <td><span t-esc="bpvar18" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar18, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Avances et acomptes reçus sur commandes en cours</td> - <td><span t-esc="bpvar19" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar19, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Dettes fournisseurs et comptes rattachés </td> - <td><span t-esc="bpvar20" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar20, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Dettes fiscales et sociales</td> - <td><span t-esc="bpvar21" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar21, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Dettes sur immobilisations et comptes rattachés</td> - <td><span t-esc="bpvar22" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar22, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Autres dettes</td> - <td><span t-esc="bpvar23" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar23, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Instruments de trésorerie</td> - <td><span t-esc="bpvar24" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar24, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Produits constatés d'avance</td> - <td><span t-esc="bpvar25" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar25, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td class="text-right"><strong>TOTAL III</strong></td> - <td><span t-esc="pt3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(pt3, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>Écarts de conversion passif <font face="Times-Roman">( IV )</font></td> - <td><span t-esc="bpvar26" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(bpvar26, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td><strong>TOTAL GÉNÉRAL (I + II + III + IV)</strong></td> - <td><span t-esc="passif" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(passif, 'monetary', res_company.currency_id)"/></td> </tr> <tr> <td>&nbsp;</td> @@ -683,7 +683,7 @@ </tr> <tr> <td><strong>ACTIF - PASSIF</strong></td> - <td><span t-esc="round(actif-passif,2)" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/></td> + <td><span t-esc="format(round(actif-passif,2), 'monetary', res_company.currency_id)"/></td> </tr> </tbody> </table> diff --git a/addons/l10n_fr/views/report_l10nfrresultat.xml b/addons/l10n_fr/views/report_l10nfrresultat.xml index 9938e3fad6f..0516dd58199 100644 --- a/addons/l10n_fr/views/report_l10nfrresultat.xml +++ b/addons/l10n_fr/views/report_l10nfrresultat.xml @@ -35,61 +35,61 @@ <tr> <td>Achat de marchandises</td> <td> - <span class="text-right" t-esc="cdrc1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc1, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Variation des stocks</td> <td> - <span class="text-right" t-esc="cdrc2" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc2, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Achats de matières premières et autres approvisionnements</td> <td> - <span class="text-right" t-esc="cdrc3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc3, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Variation des stocks</td> <td> - <span class="text-right" t-esc="cdrc4" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc4, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres achats et charges externes</td> <td> - <span class="text-right" t-esc="cdrc5" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc5, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Redevances de crédit-bail mobilier</td> <td> - <span class="text-right" t-esc="cdrc6" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc6, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Redevances de crédit-bail immobilier</td> <td> - <span class="text-right" t-esc="cdrc7" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc7, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Impôts, taxes et versements assimilés</td> <td> - <span class="text-right" t-esc="cdrc8" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc8, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Salaires et traitements</td> <td> - <span class="text-right" t-esc="cdrc9" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc9, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Charges sociales</td> <td> - <span class="text-right" t-esc="cdrc10" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc10, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -99,43 +99,43 @@ <tr> <td>Sur immobilisations : dotations aux amortissements</td> <td> - <span class="text-right" t-esc="cdrc11" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc11, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Sur immobilisations : dotations aux dépréciations</td> <td> - <span class="text-right" t-esc="cdrc12" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc12, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Sur actif circulant : dotations aux dépréciations</td> <td> - <span class="text-right" t-esc="cdrc13" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc13, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Dotations aux provisions</td> <td> - <span class="text-right" t-esc="cdrc14" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc14, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres charges</td> <td> - <span class="text-right" t-esc="cdrc15" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc15, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL I</strong></td> <td> - <span class="text-right" t-esc="ct1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(ct1, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td><strong>Quotes-parts de résultat sur opérations faites en commun ( II )</strong></td> <td> - <span class="text-right" t-esc="cdrc16" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc16, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -145,31 +145,31 @@ <tr> <td>Dotations aux amortissements, aux dépréciations et aux provisions</td> <td> - <span class="text-right" t-esc="cdrc17" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc17, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Intérêts et charges assimilées</td> <td> - <span class="text-right" t-esc="cdrc18" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc18, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Différences négatives de change</td> <td> - <span class="text-right" t-esc="cdrc19" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc19, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Charges nettes sur cessions de valeurs mobilières de placement</td> <td> - <span class="text-right" t-esc="cdrc20" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc20, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL III</strong></td> <td> - <span class="text-right" t-esc="ct3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(ct3, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -179,43 +179,43 @@ <tr> <td>Sur opérations de gestion</td> <td> - <span class="text-right" t-esc="cdrc21" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc21, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Sur opérations en capital</td> <td> - <span class="text-right" t-esc="cdrc22" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc22, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Dotations aux amortissements, aux dépréciations et aux provisions</td> <td> - <span class="text-right" t-esc="cdrc23" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc23, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL IV</strong></td> <td> - <span class="text-right" t-esc="ct4" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(ct4, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td><strong>Participation des salariés aux résultats ( V )</strong></td> <td> - <span class="text-right" t-esc="cdrc24" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc24, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td><strong>Impôts sur les bénéfices ( VI )</strong></td> <td> - <span class="text-right" t-esc="cdrc25" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrc25, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL CHARGES ( I + II + III + IV+ V+ VI )</strong></td> <td> - <span class="text-right" t-esc="charges" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(charges, 'monetary', res_company.currency_id)"/> </td> </tr> @@ -236,67 +236,67 @@ <tr> <td>Vente de marchandises</td> <td> - <span class="text-right" t-esc="cdrp1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp1, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Production vendue [biens et services]</td> <td> - <span class="text-right" t-esc="cdrp2" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp2, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td><strong>Sous-total A - Montant net du chiffre d'affaires</strong></td> <td> - <span class="text-right" t-esc="pta" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(pta, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Production stockée</td> <td> - <span class="text-right" t-esc="cdrp3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp3, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Production immobilisée</td> <td> - <span class="text-right" t-esc="cdrp4" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp4, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Subventions d'exploitation</td> <td> - <span class="text-right" t-esc="cdrp5" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp5, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Reprises sur provisions, dépréciations (et amortissements) et transferts de charges</td> <td> - <span class="text-right" t-esc="cdrp6" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp6, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres produits</td> <td> - <span class="text-right" t-esc="cdrp7" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp7, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td><strong>Sous-total B</strong></td> <td> - <span class="text-right" t-esc="ptb" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(ptb, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL I ( A + B )</strong></td> <td> - <span class="text-right" t-esc="pt1" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(pt1, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td><strong>Quotes-parts de résultat sur opérations faites en commun (II)</strong></td> <td> - <span class="text-right" t-esc="cdrp8" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp8, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -306,43 +306,43 @@ <tr> <td>De participation</td> <td> - <span class="text-right" t-esc="cdrp9" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp9, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>D'autres valeurs mobilières et créances de l'actif immobilisé</td> <td> - <span class="text-right" t-esc="cdrp10" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp10, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Autres intérêts et produits assimilés</td> <td> - <span class="text-right" t-esc="cdrp11" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp11, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Reprises sur provisions, dépréciations et transferts de charges</td> <td> - <span class="text-right" t-esc="cdrp12" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp12, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Différences positives de change</td> <td> - <span class="text-right" t-esc="cdrp13" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp13, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Produits nets sur cessions de valeurs mobilières de placement</td> <td> - <span class="text-right" t-esc="cdrp14" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp14, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL III</strong></td> <td> - <span class="text-right" t-esc="pt3" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(pt3, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> @@ -352,37 +352,37 @@ <tr> <td>Sur opérations de gestion</td> <td> - <span class="text-right" t-esc="cdrp15" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp15, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Sur opérations en capital</td> <td> - <span class="text-right" t-esc="cdrp16" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp16, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td>Reprises sur provisions, dépréciations et transferts de charges</td> <td> - <span class="text-right" t-esc="cdrp17" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(cdrp17, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL IV</strong></td> <td> - <span class="text-right" t-esc="pt4" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(pt4, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>TOTAL DES PRODUITS ( I + II + III + IV )</strong></td> <td> - <span class="text-right" t-esc="produits" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(produits, 'monetary', res_company.currency_id)"/> </td> </tr> <tr> <td class="text-right"><strong>PRODUITS - CHARGES</strong></td> <td> - <span class="text-right" t-esc="produits-charges" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> + <span class="text-right" t-esc="format(produits-charges, 'monetary', res_company.currency_id)"/> </td> </tr> </tbody> diff --git a/addons/report/models/ir_qweb.py b/addons/report/models/ir_qweb.py index 6e60f795c6b..68e9673d902 100644 --- a/addons/report/models/ir_qweb.py +++ b/addons/report/models/ir_qweb.py @@ -1,7 +1,7 @@ from reportlab.graphics.barcode import createBarcodeDrawing from openerp.osv import osv -from openerp.addons.base.ir.ir_qweb import HTMLSafe +from openerp.addons.base.ir.ir_qweb import unicodifier class BarcodeConverter(osv.AbstractModel): @@ -13,12 +13,13 @@ class BarcodeConverter(osv.AbstractModel): _inherit = 'ir.qweb.field' def value_to_html(self, cr, uid, value, field, options=None, context=None): + options = options or {} barcode_type = options.get('type', 'Code128') barcode = self.pool['report'].barcode( barcode_type, value, **dict((key, value) for key, value in options.items() if key in ['width', 'height', 'humanreadable'])) - return HTMLSafe('<img src="data:%s;base64,%s">' % ('png', barcode.encode('base64'))) + return unicodifier('<img src="data:%s;base64,%s">' % ('png', barcode.encode('base64'))) def from_html(self, cr, uid, model, field, element, context=None): return None diff --git a/addons/sale/views/report_invoice_layouted.xml b/addons/sale/views/report_invoice_layouted.xml index 037298e3aad..bcbf57de207 100644 --- a/addons/sale/views/report_invoice_layouted.xml +++ b/addons/sale/views/report_invoice_layouted.xml @@ -58,7 +58,7 @@ <td colspan="6"> <strong>Subtotal: </strong> <t t-set="subtotal" t-value="sum(line.price_subtotal for line in layout_category['lines'])"/> - <span t-esc="subtotal" t-esc-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/> + <span t-esc="format(subtotal, 'monetary', o.currency_id)"/> </td> </tr> </t> diff --git a/addons/sale/views/report_saleorder.xml b/addons/sale/views/report_saleorder.xml index 49ce4ac2bdf..471c7a47ac3 100644 --- a/addons/sale/views/report_saleorder.xml +++ b/addons/sale/views/report_saleorder.xml @@ -107,7 +107,7 @@ <td colspan="6"> <strong>Subtotal: </strong> <t t-set="subtotal" t-value="sum(line.price_subtotal for line in layout_category['lines'])"/> - <span t-esc="subtotal" t-esc-options='{"widget": "monetary", "display_currency": "doc.pricelist_id.currency_id"}'/> + <span t-esc="format(subtotal, 'monetary', doc.pricelist_id.currency_id)"/> </td> </tr> </t> diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index b3c6dc067dd..fb92fc71bb1 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -32,7 +32,7 @@ except ImportError: import openerp import openerp.modules.registry -from openerp.addons.base.ir.ir_qweb import AssetsBundle, QWebTemplateNotFound +from openerp.addons.base.ir.ir_qweb import AssetsBundle from openerp.modules import get_resource_path from openerp.tools import topological_sort from openerp.tools.translate import _ diff --git a/addons/web_editor/models/ir_qweb.py b/addons/web_editor/models/ir_qweb.py index f6758536780..b6082bc0597 100644 --- a/addons/web_editor/models/ir_qweb.py +++ b/addons/web_editor/models/ir_qweb.py @@ -6,6 +6,7 @@ as well as render a few fields differently. Also, adds methods to convert values back to openerp models. """ +import ast import cStringIO import datetime import itertools @@ -23,6 +24,8 @@ from lxml import etree, html from PIL import Image as I import openerp.modules +from odoo import api + import openerp from openerp.osv import orm, fields from openerp.tools import ustr, DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT @@ -43,20 +46,26 @@ class QWeb(orm.AbstractModel): re_remove_spaces = re.compile('\s+') - def render_tag_snippet(self, element, template_attributes, generated_attributes, qwebcontext): - cr = qwebcontext['request'].cr - uid = qwebcontext['request'].uid - view_reg = self.pool['ir.ui.view'] - page_xmlid = self.eval_format(template_attributes["snippet"], qwebcontext) - view = view_reg.browse(cr, uid, view_reg.search(cr, uid, [('key', '=', page_xmlid)])) - generated_attributes += " " + "".join([ - 'data-oe-name="%s"' % view.name, - 'data-oe-type="snippet"', - 'data-oe-thumbnail="%s"' % template_attributes.get('thumbnail', "oe-thumbnail")]) + def _compile_directive_snippet(self, el, ast_calls): + el.set('t-call', el.attrib.pop('t-snippet')) + qwebcontext = ir_qweb.QWebContext(self.env, {}) + name = self.env['ir.ui.view'].search([('key', '=', el.attrib.get('t-call'))]).display_name + thumbnail = el.attrib.pop('t-thumbnail', "oe-thumbnail") + div = u'<div name="%s" data-oe-type="snippet" data-oe-thumbnail="%s">' % (escape(ir_qweb.unicodifier(name)), escape(ir_qweb.unicodifier(thumbnail))) + return [self._append(ast.Str(div))] + self._compile_node(el, ast_calls) + [self._append(ast.Str(u'</div>'))] + + def _compile_directive_tag(self, el, ast_calls): + if el.get('t-placeholder'): + el.set('t-att-placeholder', el.attrib.pop('t-placeholder')) + return super(QWeb, self)._compile_directive_tag(el, ast_calls) - template_attributes['call'] = template_attributes['snippet'] - return self.render_tag_call(element, template_attributes, generated_attributes, qwebcontext) + def _directives_eval_order(self): + directives = super(QWeb, self)._directives_eval_order() + directives.insert(directives.index('call'), 'snippet') + return directives + def _nondirectives_ignore(self): + return {'t-thumbnail'} | super(QWeb, self)._nondirectives_ignore() #------------------------------------------------------ # QWeb fields @@ -67,36 +76,28 @@ class Field(orm.AbstractModel): _name = 'ir.qweb.field' _inherit = 'ir.qweb.field' - def attributes(self, cr, uid, field_name, record, options, - source_element, g_att, t_att, qweb_context, context=None): - if options is None: - options = {} - field = record._model._fields[field_name] - attrs = [] + @api.model + def attributes(self, record, field_name, options, qwebcontext): + attrs = super(Field, self).attributes(record, field_name, options, qwebcontext) + field = record._fields[field_name] - placeholder = options.get('placeholder') \ - or source_element.get('placeholder') \ - or getattr(field, 'placeholder', None) + placeholder = options.get('placeholder') or getattr(field, 'placeholder', None) if placeholder: - attrs.append(('placeholder', placeholder)) + attrs['placeholder'] = placeholder - if context and context.get('edit_translations') and context.get('translatable') and field.type in ('char', 'text') and field.translate: + if options['translate'] and field.type in ('char', 'text'): name = "%s,%s" % (record._model._name, field_name) - domain = [('name', '=', name), ('res_id', '=', record.id), ('type', '=', 'model'), ('lang', '=', context.get('lang'))] + domain = [('name', '=', name), ('res_id', '=', record.id), ('type', '=', 'model'), ('lang', '=', qwebcontext.env.context.get('lang'))] translation = record.env['ir.translation'].search(domain, limit=1) - attrs.append(('data-oe-translation-state', translation and translation.state or 'to_translate')) + attrs['data-oe-translation-state'] = translation and translation.state or 'to_translate' - return itertools.chain( - super(Field, self).attributes(cr, uid, field_name, record, options, - source_element, g_att, t_att, - qweb_context, context=context), - attrs - ) + return attrs def value_from_string(self, value): return value - def from_html(self, cr, uid, model, field, element, context=None): + @api.model + def from_html(self, model, field, element): return self.value_from_string(element.text_content().strip()) @@ -111,8 +112,9 @@ class Float(orm.AbstractModel): _name = 'ir.qweb.field.float' _inherit = 'ir.qweb.field.float' - def from_html(self, cr, uid, model, field, element, context=None): - lang = self.user_lang(cr, uid, context=context) + @api.model + def from_html(self, model, field, element): + lang = self.user_lang() value = element.text_content().strip() @@ -124,32 +126,26 @@ class ManyToOne(orm.AbstractModel): _name = 'ir.qweb.field.many2one' _inherit = 'ir.qweb.field.many2one' - def attributes(self, cr, uid, field_name, record, options, - source_element, g_att, t_att, qweb_context, - context=None): - attrs = super(ManyToOne, self).attributes( - cr, uid, field_name, record, options, source_element, g_att, t_att, - qweb_context, context=context) + @api.model + def attributes(self, record, field_name, options, qwebcontext): + attrs = super(ManyToOne, self).attributes(record, field_name, options, qwebcontext) many2one = getattr(record, field_name) if many2one: - data = [('data-oe-many2one-id', many2one.id), - ('data-oe-many2one-model', many2one._name)] - return itertools.chain(attrs, data) - else: - return attrs + attrs['data-oe-many2one-id'] = many2one.id + attrs['data-oe-many2one-model'] = many2one._name + return attrs - def from_html(self, cr, uid, model, field, element, context=None): - Model = self.pool[element.get('data-oe-model')] - M2O = self.pool[field.comodel_name] - field_name = element.get('data-oe-field') + @api.model + def from_html(self, model, field, element): + Model = self.env[element.get('data-oe-model')] id = int(element.get('data-oe-id')) + M2O = self.env[field.comodel_name] + field_name = element.get('data-oe-field') many2one_id = int(element.get('data-oe-many2one-id')) - - if many2one_id and M2O.exists(cr, uid, [many2one_id]): + record = many2one_id and M2O.browse(many2one_id) + if record and record.exists(): # save the new id of the many2one - Model.write(cr, uid, [id], { - field_name: many2one_id - }, context=context) + Model.browse(id).write({field_name: many2one_id}) # not necessary, but might as well be explicit about it return None @@ -159,22 +155,18 @@ class Contact(orm.AbstractModel): _name = 'ir.qweb.field.contact' _inherit = 'ir.qweb.field.contact' - def attributes(self, cr, uid, field_name, record, options, - source_element, g_att, t_att, qweb_context, - context=None): - attrs = super(Contact, self).attributes( - cr, uid, field_name, record, options, source_element, g_att, t_att, - qweb_context, context=context) - if getattr(record, field_name): - return itertools.chain(attrs, [('data-oe-contact-options', json.dumps(options))]) - else: - return attrs + @api.model + def attributes(self, record, field_name, options, qwebcontext): + attrs = super(Contact, self).attributes(record, field_name, options, qwebcontext) + attrs['data-oe-contact-options'] = json.dumps(options) + return attrs # helper to call the rendering of contact field - def get_record_to_html(self, cr, uid, ids, options=None, context=None): - node = self.record_to_html(cr, uid, 'record', { - 'record': self.pool['res.partner'].browse(cr, uid, ids[0], context=context)}, - options=options, context=context) + @api.model + def get_record_to_html(self, ids, options=None): + node = self.record_to_html('record', { + 'record': self.env['res.partner'].browse(ids[0])}, + options=options) return node and node.__html__() @@ -193,15 +185,14 @@ class Date(orm.AbstractModel): _name = 'ir.qweb.field.date' _inherit = 'ir.qweb.field.date' - def attributes(self, cr, uid, field_name, record, options, - source_element, g_att, t_att, qweb_context, - context=None): - attrs = super(Date, self).attributes( - cr, uid, field_name, record, options, source_element, g_att, t_att, - qweb_context, context=None) - return itertools.chain(attrs, [('data-oe-original', record[field_name])]) + @api.model + def attributes(self, record, field_name, options, qwebcontext): + attrs = super(Date, self).attributes(record, field_name, options, qwebcontext) + attrs['data-oe-original'] = record[field_name] + return attrs - def from_html(self, cr, uid, model, field, element, context=None): + @api.model + def from_html(self, model, field, element): value = element.text_content().strip() if not value: return False @@ -214,9 +205,9 @@ class DateTime(orm.AbstractModel): _name = 'ir.qweb.field.datetime' _inherit = 'ir.qweb.field.datetime' - def attributes(self, cr, uid, field_name, record, options, - source_element, g_att, t_att, qweb_context, - context=None): + @api.model + def attributes(self, record, field_name, options, qwebcontext): + attrs = super(DateTime, self).attributes(record, field_name, options, qwebcontext) value = record[field_name] if isinstance(value, basestring): value = datetime.datetime.strptime( @@ -224,19 +215,13 @@ class DateTime(orm.AbstractModel): if value: # convert from UTC (server timezone) to user timezone value = fields.datetime.context_timestamp( - cr, uid, timestamp=value, context=context) + self._cr, self._uid, timestamp=value, context=qwebcontext.context) value = value.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + attrs['data-oe-original'] = value + return attrs - attrs = super(DateTime, self).attributes( - cr, uid, field_name, record, options, source_element, g_att, t_att, - qweb_context, context=None) - return itertools.chain(attrs, [ - ('data-oe-original', value) - ]) - - def from_html(self, cr, uid, model, field, element, context=None): - if context is None: - context = {} + @api.model + def from_html(self, model, field, element): value = element.text_content().strip() if not value: return False @@ -245,8 +230,7 @@ class DateTime(orm.AbstractModel): dt = parser.parse(value) # convert back from user's timezone to UTC - tz_name = context.get('tz') \ - or self.pool['res.users'].read(cr, openerp.SUPERUSER_ID, uid, ['tz'], context=context)['tz'] + tz_name = self.env.context.get('tz') or self.env.user.tz if tz_name: try: user_tz = pytz.timezone(tz_name) @@ -268,7 +252,8 @@ class Text(orm.AbstractModel): _name = 'ir.qweb.field.text' _inherit = 'ir.qweb.field.text' - def from_html(self, cr, uid, model, field, element, context=None): + @api.model + def from_html(self, model, field, element): return html_to_text(element) @@ -276,10 +261,10 @@ class Selection(orm.AbstractModel): _name = 'ir.qweb.field.selection' _inherit = 'ir.qweb.field.selection' - def from_html(self, cr, uid, model, field, element, context=None): - record = self.browse(cr, uid, [], context=context) + @api.model + def from_html(self, model, field, element): value = element.text_content().strip() - selection = field.get_description(record.env)['selection'] + selection = field.get_description(self.env)['selection'] for k, v in selection: if isinstance(v, str): v = ustr(v) @@ -294,7 +279,8 @@ class HTML(orm.AbstractModel): _name = 'ir.qweb.field.html' _inherit = 'ir.qweb.field.html' - def from_html(self, cr, uid, model, field, element, context=None): + @api.model + def from_html(self, model, field, element): content = [] if element.text: content.append(element.text) @@ -313,20 +299,13 @@ class Image(orm.AbstractModel): _name = 'ir.qweb.field.image' _inherit = 'ir.qweb.field.image' - def to_html(self, cr, uid, field_name, record, options, - source_element, t_att, g_att, qweb_context, context=None): - assert source_element.tag != 'img',\ + @api.model + def record_to_html(self, record, field_name, options, qwebcontext=None): + assert options['tagName'] != 'img',\ "Oddly enough, the root tag of an image field can not be img. " \ "That is because the image goes into the tag, or it gets the " \ "hose again." - return super(Image, self).to_html( - cr, uid, field_name, record, options, - source_element, t_att, g_att, qweb_context, context=context) - - def record_to_html(self, cr, uid, field_name, record, options=None, context=None): - if options is None: - options = {} aclasses = ['img', 'img-responsive'] + options.get('class', '').split() classes = ' '.join(itertools.imap(escape, aclasses)) @@ -350,11 +329,12 @@ class Image(orm.AbstractModel): img = '<img class="%s" src="%s" style="%s"%s/>' % \ (classes, src, options.get('style', ''), ' alt="%s"' % alt if alt else '') - return ir_qweb.HTMLSafe(img) + return ir_qweb.unicodifier(img) local_url_re = re.compile(r'^/(?P<module>[^]]+)/static/(?P<rest>.+)$') - def from_html(self, cr, uid, model, field, element, context=None): + @api.model + def from_html(self, model, field, element): url = element.find('img').get('src') url_object = urlparse.urlsplit(url) @@ -370,7 +350,7 @@ class Image(orm.AbstractModel): model = query.get('model', fragments[3]) oid = query.get('id', fragments[4].split('_')[0]) field = query.get('field', fragments[5]) - item = self.pool[model].browse(cr, uid, int(oid), context=context) + item = self.env[model].browse(int(oid)) return item[field] if self.local_url_re.match(url_object.path): @@ -432,8 +412,9 @@ class Monetary(orm.AbstractModel): _name = 'ir.qweb.field.monetary' _inherit = 'ir.qweb.field.monetary' - def from_html(self, cr, uid, model, field, element, context=None): - lang = self.user_lang(cr, uid, context=context) + @api.model + def from_html(self, model, field, element): + lang = self.user_lang() value = element.find('span').text.strip() @@ -445,15 +426,14 @@ class Duration(orm.AbstractModel): _name = 'ir.qweb.field.duration' _inherit = 'ir.qweb.field.duration' - def attributes(self, cr, uid, field_name, record, options, - source_element, g_att, t_att, qweb_context, - context=None): - attrs = super(Duration, self).attributes( - cr, uid, field_name, record, options, source_element, g_att, t_att, - qweb_context, context=None) - return itertools.chain(attrs, [('data-oe-original', record[field_name])]) + @api.model + def attributes(self, record, field_name, options, qwebcontext): + attrs = super(Duration, self).attributes(record, field_name, options, qwebcontext) + attrs['data-oe-original'] = record[field_name] + return attrs - def from_html(self, cr, uid, model, field, element, context=None): + @api.model + def from_html(self, model, field, element): value = element.text_content().strip() # non-localized value diff --git a/addons/web_editor/models/ir_ui_view.py b/addons/web_editor/models/ir_ui_view.py index 01082efb37b..762312bc28f 100644 --- a/addons/web_editor/models/ir_ui_view.py +++ b/addons/web_editor/models/ir_ui_view.py @@ -37,18 +37,17 @@ class view(osv.osv): def extract_embedded_fields(self, cr, uid, arch, context=None): return arch.xpath('//*[@data-oe-model != "ir.ui.view"]') - def save_embedded_field(self, cr, uid, el, context=None): - Model = self.pool[el.get('data-oe-model')] + @api.model + def save_embedded_field(self, el): + Model = self.env[el.get('data-oe-model')] field = el.get('data-oe-field') - converter = self.pool['ir.qweb'].get_converter_for(el.get('data-oe-type')) - value = converter.from_html(cr, uid, Model, Model._fields[field], el) + converter = self.env['ir.qweb'].get_field_for(el.get('data-oe-type')) + value = converter.from_html(Model, Model._fields[field], el) if value is not None: # TODO: batch writes? - Model.write(cr, uid, [int(el.get('data-oe-id'))], { - field: value - }, context=context) + Model.browse(int(el.get('data-oe-id'))).write({field: value}) def _pretty_arch(self, arch): # remove_blank_string does not seem to work on HTMLParser, and diff --git a/addons/web_editor/models/test_models.py b/addons/web_editor/models/test_models.py index 100b49b6448..716e42a4dc3 100644 --- a/addons/web_editor/models/test_models.py +++ b/addons/web_editor/models/test_models.py @@ -21,7 +21,7 @@ class test_converter(orm.Model): (1, "réponse A"), (2, "réponse B"), (3, "réponse C"), - (4, "réponse D"), + (4, "réponse <D>"), ]), 'selection_str': fields.selection([ ('A', "Qu'il n'est pas arrivé à Toronto"), diff --git a/addons/web_editor/static/src/js/snippets.editor.js b/addons/web_editor/static/src/js/snippets.editor.js index ef033dc07f3..ee0e07e4514 100644 --- a/addons/web_editor/static/src/js/snippets.editor.js +++ b/addons/web_editor/static/src/js/snippets.editor.js @@ -213,8 +213,8 @@ var BuildingBlock = Widget.extend({ }).on('click', function () {$(this).tooltip('hide');}); // t-snippet - $html.find('[data-oe-type="snippet"][data-oe-name]').each(function () { - var $div = $('<div/>').insertAfter(this).append(this).attr('name', $(this).data('oe-name')); + $html.find('[data-oe-type="snippet"]').each(function () { + $(this).children().attr('data-oe-type', "snippet").attr('data-oe-thumbnail', $(this).data('oe-thumbnail')); }); // end diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index a448b9d8554..434aa42de88 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -11,7 +11,7 @@ import werkzeug.utils import openerp from openerp.addons.base import ir -from openerp.addons.base.ir import ir_qweb +from odoo.exceptions import QWebException from openerp.addons.website.models.website import slug, url_for, _UNSLUG_RE from openerp.http import request from openerp.tools import config @@ -247,7 +247,7 @@ class ir_http(orm.AbstractModel): # if parent excplicitely returns a plain response, then we don't touch it return response except Exception, e: - if 'werkzeug' in config['dev_mode'] and (not isinstance(exception, ir_qweb.QWebException) or not exception.qweb.get('cause')): + if 'werkzeug' in config['dev_mode'] and (not isinstance(exception, QWebException) or not exception.qweb.get('cause')): raise exception = e @@ -267,7 +267,7 @@ class ir_http(orm.AbstractModel): if isinstance(exception, openerp.exceptions.AccessError): code = 403 - if isinstance(exception, ir_qweb.QWebException): + if isinstance(exception, QWebException): values.update(qweb_exception=exception) if isinstance(exception.qweb.get('cause'), openerp.exceptions.AccessError): code = 403 diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py index fcfb93b59c0..c8c0fe64613 100644 --- a/addons/website/models/ir_qweb.py +++ b/addons/website/models/ir_qweb.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- from openerp.addons.web.http import request from openerp.osv import orm +import ast +from openerp.addons.base.ir.ir_qweb import utils class QWeb(orm.AbstractModel): @@ -26,24 +28,46 @@ class QWeb(orm.AbstractModel): 'style', ] - def render_attribute(self, element, name, value, qwebcontext): + def _website_build_attribute(self, tagName, name, value, qwebcontext): context = qwebcontext.context or {} if not context.get('rendering_bundle'): - if name == self.URL_ATTRS.get(element.tag) and qwebcontext.get('url_for'): - value = qwebcontext.get('url_for')(value) - elif request and getattr(request, 'website', None) and request.website.cdn_activated and (name == self.URL_ATTRS.get(element.tag) or name == self.CDN_TRIGGERS.get(element.tag)): - value = request.website.get_cdn_url(value) - return super(QWeb, self).render_attribute(element, name, value, qwebcontext) - - def render_text(self, text, element, qwebcontext): - compress = request and not request.debug and getattr(request, 'website', None) and request.website.compress_html - if compress and element.tag not in self.PRESERVE_WHITESPACE: - text = self.re_remove_spaces.sub(' ', text) - return super(QWeb, self).render_text(text, element, qwebcontext) - - def render_tail(self, tail, element, qwebcontext): - compress = request and not request.debug and getattr(request, 'website', None) and request.website.compress_html - if compress and element.getparent().tag not in self.PRESERVE_WHITESPACE: - # No need to recurse because those tags children are not html5 parser friendly - tail = self.re_remove_spaces.sub(' ', tail.rstrip()) - return super(QWeb, self).render_tail(tail, element, qwebcontext) + if name == self.URL_ATTRS.get(tagName) and qwebcontext.get('url_for'): + return qwebcontext.get('url_for')(value or '') + elif request and request.website and request.website.cdn_activated and (name == self.URL_ATTRS.get(tagName) or name == self.CDN_TRIGGERS.get(tagName)): + return request.website.get_cdn_url(value or '') + return value + + def _wrap_build_attributes(self, el, items): + url_att = self.URL_ATTRS.get(el.tag) + cdn_att = self.CDN_TRIGGERS.get(el.tag) + for item in items: + if isinstance(item, tuple) and (item[0] == url_att or item[0] == cdn_att): + items[items.index(item)] = (item[0], ast.Call( + func=ast.Attribute( + value=ast.Name(id='self', ctx=ast.Load()), + attr='_website_build_attribute', + ctx=ast.Load() + ), + args=[ + ast.Str(el.tag), + ast.Str(item[0]), + item[1], + ast.Name(id='qwebcontext', ctx=ast.Load()), + ], keywords=[], + starargs=None, kwargs=None + )) + return items + + def _serialize_static_attributes(self, el): + items = super(QWeb, self)._serialize_static_attributes(el) + return self._wrap_build_attributes(el, items) + + def _compile_dynamic_attributes(self, el): + items = super(QWeb, self)._compile_dynamic_attributes(el) + return self._wrap_build_attributes(el, items) + + def _compile_dynamic_att(self, tagName, atts, qwebcontext): + atts = super(QWeb, self)._compile_dynamic_att(tagName, atts, qwebcontext) + for name, value in atts.iteritems(): + atts[name] = self.build_attribute(tagName, name, value, qwebcontext) + return atts diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml index f74ecd39a17..ae4cea4fcff 100644 --- a/addons/website_blog/views/website_blog_templates.xml +++ b/addons/website_blog/views/website_blog_templates.xml @@ -139,7 +139,7 @@ <span t-field="blog_post.author_avatar" class="o_not_editable" t-field-options='{"widget": "image", "class": "img-circle pull-right mt16 media-object"}' /> </t> <a t-attf-href="/blog/#{ slug(blog_post.blog_id) }/post/#{ slug(blog_post) }"> - <h2 t-field="blog_post.name" class="mb4"><t t-if="not blog_post.name">Untitled Post</t></h2> + <h2 t-field="blog_post.name" class="mb4">Untitled Post</h2> </a> <div class="text-muted"> <h4 t-field="blog_post.subtitle" class="mb4 mt4"></h4> diff --git a/addons/website_form/controllers/main.py b/addons/website_form/controllers/main.py index be1bf5aa53a..d30514bfb9f 100644 --- a/addons/website_form/controllers/main.py +++ b/addons/website_form/controllers/main.py @@ -10,7 +10,7 @@ from openerp.http import request from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT from openerp.tools.translate import _ from openerp.exceptions import ValidationError -from openerp.addons.base.ir.ir_qweb import nl2br +from openerp.addons.base.ir.ir_qweb.fields import nl2br class WebsiteForm(http.Controller): diff --git a/addons/website_payment/views/website_payment_templates.xml b/addons/website_payment/views/website_payment_templates.xml index 1dc0d39a76a..efc234e81e4 100644 --- a/addons/website_payment/views/website_payment_templates.xml +++ b/addons/website_payment/views/website_payment_templates.xml @@ -106,7 +106,7 @@ <div class="col-sm-9"> <span name="form_amount" class="form-control" t-esc="amount"/> <!-- - <span name="form_amount" class="form-control" t-esc="amount" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/> + <span name="form_amount" class="form-control" t-esc="format(amount, 'monetary', currency)"/> --> </div> </div> @@ -149,7 +149,7 @@ <div class="form-group"> <label for="form_amount" class="col-sm-3 control-label">Amount</label> <div class="col-sm-9"> - <span name="form_amount" class="form-control" t-esc="tx.amount" t-esc-options='{"widget": "monetary", "display_currency": "tx.currency_id"}'/> + <span name="form_amount" class="form-control" t-esc="format(tx.amount, 'monetary', tx.currency_id)"/> </div> </div> <div class="col-sm-12"> diff --git a/addons/website_quote/views/website_quotation.xml b/addons/website_quote/views/website_quotation.xml index 0e5795aadba..19ea291b2ca 100644 --- a/addons/website_quote/views/website_quotation.xml +++ b/addons/website_quote/views/website_quotation.xml @@ -88,7 +88,7 @@ <td class="text-right" style="padding-bottom: 32px"><strong>Subtotal:</strong></td> <td class="text-right" style="padding-bottom: 32px"> <t t-set="subtotal" t-value="sum(line.price_subtotal for line in layout_category['lines'])"/> - <strong data-id="total_amount" t-esc="subtotal" t-esc-options='{"widget": "monetary","display_currency": "quotation.pricelist_id.currency_id"}'/> + <strong data-id="total_amount" t-esc="format(subtotal, 'monetary', quotation.pricelist_id.currency_id)"/> </td> <td></td> </tr> diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 88a69e08acd..c059ca2692c 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -615,7 +615,6 @@ class WebsiteSale(http.Controller): @http.route(['/shop/confirm_order'], type='http', auth="public", website=True) def confirm_order(self, **post): - order = request.website.sale_get_order() if not order: return request.redirect("/shop") |
