summaryrefslogtreecommitdiff
path: root/addons/web/static/src/xml/base.xml
diff options
context:
space:
mode:
authorVidhin Mehta (OpenERP) <vme@tinyerp.com>2012-11-01 11:27:02 +0530
committerVidhin Mehta (OpenERP) <vme@tinyerp.com>2012-11-01 11:27:02 +0530
commit1f4be500797bc9dee6744e5d415c6cd90a2740f7 (patch)
treed593ec0bccae25a1f10b8a0d8f5966bd1bdc1f6d /addons/web/static/src/xml/base.xml
parent05bf985ace55c49b67251a0569a4754e98eb1a7a (diff)
parent14b0e8346754f1f3c476e46d5b3c3ffa9a985a5c (diff)
[MERGE]trunk.
bzr revid: vme@tinyerp.com-20121101055702-aoybyhf8od52kto0
Diffstat (limited to 'addons/web/static/src/xml/base.xml')
-rw-r--r--addons/web/static/src/xml/base.xml214
1 files changed, 125 insertions, 89 deletions
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 330a5b3928f..3eb8ff1acc7 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -51,29 +51,6 @@
</table>
</t>
<t t-name="CrashManager.error">
- <t t-if="!session.openerp_entreprise">
- <span>Your version of OpenERP is unsupported. Support &amp; maintenance services are available here: <a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank">OpenERP Entreprise</a>.</span>
- </t>
- <t t-if="session.openerp_entreprise">
- <div class="oe_error_send">
- <div>
- <div class="oe_centeralign"><b>OpenERP Enterprise Contract.</b></div>
- <div><br/>Your report will be sent to the OpenERP Enterprise team.<br/></div><br/>
- <div>
- <label>Summary:</label><br/>
- <input id="issuename" type="text" class="oe_fielddiv"/>
- </div><br/><br/>
- <div>
- <label>Description:</label><br/>
- <textarea id="explanation" rows="6"></textarea>
- </div><br/><br/>
- <div>
- <label>What you did:</label><br/>
- <textarea id="remark" rows="6" ></textarea>
- </div>
- </div>
- </div><br/>
- </t>
<div class="oe_error_detail">
<pre><t t-esc="error.message"/></pre>
<hr/>
@@ -84,7 +61,7 @@
<t t-name="Login">
<div class="oe_login">
<div class="oe_login_bottom"> </div>
- <div class="oe_login_error_message">Invalid username or password</div>
+ <div class="oe_login_error_message"/>
<div class="oe_login_pane">
<div class="oe_login_logo"><img src='/web/static/src/img/logo2.png'/></div>
<form action="" method="post">
@@ -102,7 +79,7 @@
</form>
<div class="oe_login_footer">
<a href="#" class="oe_login_manage_db">Manage Databases</a> |
- <a href="http://www.openerp.com">Powered by <span>OpenERP</span></a>
+ <a href="http://www.openerp.com" target="_blank">Powered by <span>OpenERP</span></a>
</div>
</div>
</div>
@@ -143,7 +120,7 @@
</tr>
<tr>
<td><label for="db_name">New database name:</label></td>
- <td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_]+$" autofocus="true"/></td>
+ <td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" autofocus="true"/></td>
</tr>
<tr>
<td><label for="demo_data">Load Demonstration data:</label></td>
@@ -337,7 +314,7 @@
<t t-name="Menu">
<ul class="oe_menu" t-if="widget.data">
<li t-foreach="widget.data.data.children" t-as="menu">
- <t t-call="Menu.secondary.link"/>
+ <t t-call="Menu.link"/>
</li>
</ul>
</t>
@@ -356,7 +333,7 @@
<t t-esc="menu.name"/>
<!--
Shall the section be still clickable ?
- <t t-call="Menu.secondary.link"/>
+ <t t-call="Menu.link"/>
-->
</div>
<t t-call="Menu.secondary.submenu"/>
@@ -366,13 +343,13 @@
<t t-name="Menu.secondary.submenu">
<ul t-if="menu.children.length" class="oe_secondary_submenu">
<li t-foreach="menu.children" t-as="menu">
- <t t-call="Menu.secondary.link"/>
+ <t t-call="Menu.link"/>
<!--<span class="oe_menu_label">8</span>-->
<t t-call="Menu.secondary.submenu"/>
</li>
</ul>
</t>
-<t t-name="Menu.secondary.link">
+<t t-name="Menu.link">
<a t-attf-href="#menu_id=#{menu.id}&amp;action=#{menu.action ? menu.action.split(',')[1] : ''}"
t-att-class="menu.children.length ? 'oe_menu_toggler' : 'oe_menu_leaf'"
t-att-data-menu="menu.id"
@@ -427,13 +404,10 @@
</tr>
<tr>
<td class="oe_leftbar" valign="top">
- <t t-js="d">
- d.url = '/' + (window.location.search || '');
- </t>
- <a t-att-href="url" class="oe_logo"><img t-att-src='_s + "/web/static/src/img/logo.png"'/></a>
+ <a class="oe_logo" href="#"><img t-att-src='_s + "/web/static/src/img/logo.png"'/></a>
<div class="oe_secondary_menus_container"/>
<div class="oe_footer">
- Powered by <a href="http://www.openerp.com"><span>Open</span>ERP</a>
+ Powered by <a href="http://www.openerp.com" target="_blank"><span>OpenERP</span></a>
</div>
</td>
<td class="oe_application">
@@ -453,9 +427,9 @@
<div class="oe_view_manager">
<table class="oe_view_manager_header">
<col width="20%"/>
- <col width="25%"/>
- <col width="20%"/>
<col width="35%"/>
+ <col width="15%"/>
+ <col width="30%"/>
<tr class="oe_header_row oe_header_row_top">
<td colspan="2">
<h2 class="oe_view_title" t-if="widget.flags.display_title !== false">
@@ -502,15 +476,18 @@
<option value="">Debug View#<t t-esc="view.fields_view.view_id"/></option>
<option t-if="view_manager.active_view === 'form'" value="perm_read" data-views="form,page">View Log (perm_read)</option>
<option t-if="view_manager.active_view === 'form'" value="toggle_layout_outline">Toggle Form Layout Outline</option>
+ <option value="tests">JS Tests</option>
<option value="fields">View Fields</option>
<option value="fvg">Fields View Get</option>
<option value="manage_filters">Manage Filters</option>
<t t-if="view_manager.session.uid === 1">
+ <option value="translate">Technical translation</option>
<option value="manage_views">Manage Views</option>
<option value="edit" data-model="ir.ui.view" t-att-data-id="view.fields_view.view_id">Edit <t t-esc="_.str.capitalize(view.fields_view.type)"/>View</option>
<option t-if="view_manager.searchview" value="edit" data-model="ir.ui.view" t-att-data-id="view_manager.searchview.view_id">Edit SearchView</option>
<option t-if="view_manager.action" value="edit" t-att-data-model="view_manager.action.type" t-att-data-id="view_manager.action.id">Edit Action</option>
<option value="edit_workflow">Edit Workflow</option>
+ <option value="print_workflow">Print Workflow</option>
</t>
</t>
<t t-name="ViewManagerDebugViewLog">
@@ -563,6 +540,7 @@
<t t-foreach="widget.sections" t-as="section">
<div class="oe_form_dropdown_section">
<button class="oe_dropdown_toggle oe_dropdown_arrow">
+ <t t-if="section.name == 'files'" t-raw="widget.items[section.name].length || ''"/>
<t t-esc="section.label"/>
</button>
<ul class="oe_dropdown_menu">
@@ -570,7 +548,7 @@
<a class="oe_sidebar_action_a" t-att-title="item.title" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank">
<t t-raw="item.label"/>
</a>
- <a t-if="section.name == 'files'" class="oe_sidebar_delete_item" t-att-data-id="item.id" title="Delete this attachment">x</a>
+ <a t-if="section.name == 'files' and !item.callback" class="oe_sidebar_delete_item" t-att-data-id="item.id" title="Delete this attachment">x</a>
</li>
<li t-if="section.name == 'files'" class="oe_sidebar_add_attachment">
<t t-call="HiddenInputFile">
@@ -599,7 +577,7 @@
<tr>
<th t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible">
- <t t-esc="fields[field.attrs.name].string" />
+ <t t-esc="field_value.attrs.string || fields[field.attrs.name].string" />
</th>
</tr>
</thead>
@@ -614,7 +592,7 @@
<t t-set="children" t-value="record[children_field]"/>
<t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
<t t-set="rank" t-value="'oe-treeview-first'"/>
- <t t-set="style" t-value="'background-position: ' + 19*(level-1) + 'px; padding-left: ' + 19*(level-1) + 'px;'"/>
+ <t t-set="style" t-value="'background-position: ' + 19*(level-1) + 'px; padding-left: ' + (4 + 19*(level-1)) + 'px;'"/>
<td t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
@@ -653,11 +631,11 @@
</th>
<t t-foreach="columns" t-as="column">
<th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
- t-attf-class="oe_list_header_#{column.widget or column.type} #{((options.sortable and column.tag !== 'button') ? 'oe_sortable' : null)}">
+ t-attf-class="oe_list_header_#{column.widget or column.type} #{((options.sortable and column.tag !== 'button') ? 'oe_sortable' : null)}"><div>
<t t-if="column.tag !== 'button'"><t t-esc="column.string"/></t>
- </th>
+ </div></th>
</t>
- <th t-if="options.deletable" width="13px"/>
+ <th t-if="options.deletable" class="oe_list_record_delete" width="13px"/>
</tr>
</thead>
<tfoot>
@@ -671,13 +649,10 @@
</tfoot>
</table>
<div t-name="ListView.buttons" class="oe_list_buttons">
- <t t-if="!widget.no_leaf and widget.options.action_buttons !== false and widget.options.addable">
+ <t t-if="!widget.no_leaf and widget.options.action_buttons !== false and widget.options.addable and widget.is_action_enabled('create')">
<button type="button" class="oe_button oe_list_add oe_highlight">
<t t-esc="widget.options.addable"/>
</button>
- <span class="oe_alternative" t-if="widget.options.import_enabled">
- <span class="oe_fade">or</span> <a href="#" class="oe_bold oe_list_button_import">Import</a>
- </span>
</t>
</div>
<t t-name="ListView.pager">
@@ -721,11 +696,17 @@
<t t-jquery="button.oe_list_add" t-operation="after">
<button class="oe_button oe_list_save oe_highlight"
type="button">Save</button>
- </t>
- <t t-jquery="a.oe_list_button_import" t-operation="after">
- <a href="#" class="oe_bold oe_list_discard">discard</a>
+ <span class="oe_alternative">
+ <span class="oe_fade">or</span>
+ <a href="#" class="oe_bold oe_list_discard">Discard</a>
+ </span>
</t>
</t>
+<button t-name="ListView.row.button" type="button"
+ t-att-title="widget.string" t-att-disabled="disabled || undefined"
+ t-att-class="disabled ? 'oe_list_button_disabled' : undefined"
+ ><img t-attf-src="#{prefix}/web/static/src/img/icons/#{widget.icon}.png"
+ t-att-alt="widget.string" /></button>
<t t-extend="ListView.row">
<!-- adds back padding to row being rendered after edition, if necessary
(if not deletable add back padding), otherwise the row being added is
@@ -747,20 +728,24 @@
<div t-name="FormView.buttons" class="oe_form_buttons">
<t t-if="widget.options.action_buttons !== false">
<span class="oe_form_buttons_view">
- <div style="display: inline-block;"> <!-- required for the bounce effect on button -->
- <button type="button" class="oe_button oe_form_button_edit">Edit</button>
+ <!-- required for the bounce effect on button -->
+ <div t-if="widget.is_action_enabled('edit')" style="display: inline-block;">
+ <button type="button" class="oe_button oe_form_button_edit" accesskey="E">Edit</button>
</div>
- <button type="button" class="oe_button oe_form_button_create">Create</button>
+ <button t-if="widget.is_action_enabled('create')"
+ type="button" class="oe_button oe_form_button_create" accesskey="C">Create</button>
</span>
<span class="oe_form_buttons_edit">
- <button type="button" class="oe_button oe_form_button_save oe_highlight">Save</button> <span class="oe_fade">or</span> <a href="#" class="oe_bold oe_form_button_cancel">Discard</a>
+ <button type="button" class="oe_button oe_form_button_save oe_highlight" accesskey="S">Save</button>
+ <span class="oe_fade">or</span>
+ <a href="#" class="oe_bold oe_form_button_cancel" accesskey="D">Discard</a>
</span>
</t>
</div>
<t t-name="FormView.pager">
<div class="oe_form_pager">
<t t-if="widget.options.pager !== false" t-call="ViewPager">
- <span class="oe_pager_index">0</span><span class="oe_pager_separator"> / </span><span class="oe_pager_count">0</span>
+ <span class="oe_form_pager_state"></span>
</t>
</div>
</t>
@@ -839,7 +824,7 @@
<div class="oe_clear">
<ul t-attf-class="oe_notebook #{classnames}">
<li t-foreach="pages" t-as="page" t-att-modifiers="page.modifiers">
- <a t-attf-href="##{page.id}">
+ <a t-attf-href="##{page.id}" t-att-accesskey="page.accesskey">
<t t-esc="page.string"/>
</a>
</li>
@@ -931,14 +916,18 @@
</t>
<t t-name="FieldChar">
<span t-att-class="'oe_form_field '+widget.widget_class" t-att-style="widget.node.attrs.style">
- <t t-if="!widget.get('effective_readonly')">
+ <t t-if="!widget.get('effective_readonly')">
<input t-att-type="widget.password ? 'password' : 'text'"
t-att-id="widget.id_for_label"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="widget.node.attrs.placeholder"
+ t-att-maxlength="widget.field.size"
/><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
</t>
+ <t t-if="widget.get('effective_readonly')">
+ <span class="oe_form_char_content"></span>
+ </t>
</span>
</t>
<t t-name="FieldEmail">
@@ -951,6 +940,7 @@
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="widget.node.attrs.placeholder"
+ t-att-maxlength="widget.field.size"
/>
</div>
</t>
@@ -969,6 +959,7 @@
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''"
+ t-att-maxlength="widget.field.size"
></textarea><img class="oe_field_translate oe_input_icon"
t-if="widget.field.translate and !widget.get('effective_readonly')"
t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"
@@ -1083,11 +1074,11 @@
</span>
</t>
<t t-name="FieldStatus">
- <ul t-att-class="widget.options.clickable ? 'oe_form_steps_clickable' : 'oe_form_steps'" t-att-style="widget.node.attrs.style"/>
+ <ul t-att-class="'oe_form_field_status ' + (widget.options.clickable ? 'oe_form_status_clickable' : 'oe_form_status')" t-att-style="widget.node.attrs.style"/>
</t>
<t t-name="FieldStatus.content">
<t t-foreach="widget.selection" t-as="i">
- <li t-att-class="i[0] === widget.selected_value ? 'oe_active' : ''" t-att-data-id="i[0]">
+ <li t-att-class="i[0] === widget.get('value') ? 'oe_active' : ''" t-att-data-id="i[0]">
<span class="label"><t t-esc="i[1]"/></span>
<!-- are you mit ? -->
<span class="arrow"><span></span></span>
@@ -1134,8 +1125,8 @@
<td>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
- <t t-set="fileupload_style">width: 83px;</t>
- <button class="oe_button oe_field_button" type="button" title="Set Image">
+ <t t-set="fileupload_style" t-translation="off">width: 83px;</t>
+ <button class="oe_button oe_field_button" type="button">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
<span>Select</span>
</button>
@@ -1183,11 +1174,54 @@
<iframe t-att-id="fileupload_id" t-att-name="fileupload_id" style="display: none"/>
</div>
</t>
+<t t-name="FieldBinaryFileUploader.files">
+ <div class="oe_attachments">
+ <t t-if="!widget.get('effective_readonly')" t-foreach="widget.get('value')" t-as="file">
+ <div class="oe_attachment">
+ <span t-if="(file.upload or file.percent_loaded&lt;100)" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}" t-attf-name="{file.name || file.filename}">
+ <span class="oe_fileuploader_in_process">...Upload in progress...</span>
+ <t t-raw="file.name || file.filename"/>
+ </span>
+ <a t-if="(!file.upload or file.percent_loaded&gt;=100)" t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
+ <t t-raw="file.name || file.filename"/>
+ </a>
+ <t t-if="(!file.upload or file.percent_loaded&gt;=100)">
+ <a class="oe_right oe_delete oe_e" title="Delete this file" t-attf-data-id="{file.id}">[</a>
+ </t>
+ </div>
+ </t>
+ <t t-if="widget.get('effective_readonly')" t-foreach="widget.get('value')" t-as="file">
+ <div>
+ <a t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
+ <t t-raw="file.name || file.filename"/>
+ </a>
+ </div>
+ </t>
+ </div>
+</t>
+<t t-name="FieldBinaryFileUploader">
+ <div t-att-style="widget.node.attrs.style" t-attf-class="oe_fileupload #{widget.node.attrs.class ? widget.node.attrs.class :''}">
+ <div class="oe_placeholder_files"/>
+ <div class="oe_add" t-if="!widget.get('effective_readonly')">
+ <!-- uploader of file -->
+ <button class="oe_attach"><span class="oe_e">'</span></button>
+ <span class='oe_attach_label'>File</span>
+ <t t-call="HiddenInputFile">
+ <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
+ <t t-set="fileupload_action">/web/binary/upload_attachment</t>
+ <input type="hidden" name="model" t-att-value="widget.view.model"/>
+ <input type="hidden" name="id" value="0"/>
+ <input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
+ </t>
+ </div>
+ </div>
+</t>
<t t-name="WidgetButton">
<button type="button" class="oe_button oe_form_button"
t-att-style="widget.node.attrs.style"
t-att-tabindex="widget.node.attrs.tabindex"
- t-att-autofocus="widget.node.attrs.autofocus">
+ t-att-autofocus="widget.node.attrs.autofocus"
+ t-att-accesskey="widget.node.attrs.accesskey">
<img t-if="widget.node.attrs.icon" t-att-src="_s + widget.node.attrs.icon" width="16" height="16"/>
<span t-if="widget.string"><t t-esc="widget.string"/></span>
</button>
@@ -1224,28 +1258,6 @@
</t>
</t>
-<t t-name="TranslateDialog">
- <table t-if="widget.view.translatable_fields" class="oe_form oe_translation_form" border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td class="oe_form_separator" width="1%" nowrap="nowrap">
- <div class="oe_horizontal_separator">Field</div>
- </td>
- <th t-foreach="widget.languages" align="left">
- <div class="oe_horizontal_separator"><t t-esc="name"/></div>
- </th>
- </tr>
- <tr t-foreach="widget.view.translatable_fields" t-as="field" t-att-data-field="field.name">
- <td class="oe_form_group_cell" width="1%" nowrap="nowrap">
- <label class="oe_label"><t t-esc="field.string"/>:</label>
- </td>
- <td t-foreach="widget.languages" t-as="lg" class="oe_form_group_cell">
- <input t-if="field.field.type == 'char'" type="text" t-attf-name="#{lg.code}-#{field.name}" value="" data-value="" class="oe_trad_field" style="width: 100%"/>
- <textarea t-if="field.field.type == 'text'" t-attf-name="#{lg.code}-#{field.name}" data-value="" class="oe_trad_field" style="width: 100%"></textarea>
- </td>
- </tr>
- </table>
-</t>
-
<t t-name="AbstractFormPopup.render">
<div>
<table style="width:100%">
@@ -1266,9 +1278,9 @@
<t t-name="SelectCreatePopup.search.buttons">
<t t-if="! widget.options.disable_multiple_selection">
<button type="button" class="oe_button oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
- or
</t>
- <a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
+ <button type="button" class="oe_button oe_selectcreatepopup-search-create">Create</button>
+ or <a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
</t>
<t t-name="AbstractFormPopup.buttons">
<t t-if="! readonly">
@@ -1276,8 +1288,8 @@
<button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save</button>
</t>
<t t-if="multi_select">
- <button type="button" class="oe_button oe_abstractformpopup-form-save-new oe_highlight">Save &amp; New</button>
<button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save &amp; Close</button>
+ <button type="button" class="oe_button oe_abstractformpopup-form-save-new oe_highlight">Save &amp; New</button>
</t>
or
</t>
@@ -1327,7 +1339,8 @@
<div t-name="SearchView.InputView"
class="oe_searchview_input"
- contenteditable="true"/>
+ contenteditable="true"
+ tabindex="0"/>
<!-- tabindex: makes div focusable -->
<div t-name="SearchView.FacetView"
class="oe_tag oe_tag_dark oe_searchview_facet"
@@ -1518,6 +1531,7 @@
</div>
<t t-name="SearchView.extended_search.proposition">
<li>
+ <span class="searchview_extended_prop_or">or</span>
<select class="searchview_extended_prop_field">
<t t-foreach="widget.attrs.fields" t-as="field">
<option t-att="{'selected': field === widget.attrs.selected ? 'selected' : null}"
@@ -1566,7 +1580,7 @@
<td colspan="3">
<label for="import_compat">Export Type:</label>
<select id="import_compat" name="import_compat">
- <option value="yes">Import Compatible Export</option>
+ <option value="yes">Import-Compatible Export</option>
<option value="">Export all Data</option>
</select>
@@ -1739,4 +1753,26 @@
<div class="oe_throbber_message" style="color:white"></div>
</div>
</t>
+<t t-name="M2ODialog">
+ <div>
+ Name: <input class="oe_form_m2o_input_name" type="text"/>
+ </div>
+</t>
+<t t-name="M2ODialog.buttons">
+ <button class="oe_form_m2o_qc_button oe_button oe_highlight">Quick Add</button>
+ <button class="oe_form_m2o_sc_button oe_button">Add All Info...</button>
+ <button class="oe_form_m2o_cancel_button oe_button">Cancel</button>
+</t>
+<t t-name="FieldMonetary" t-extend="FieldChar">
+ <t t-jquery="t:first" t-operation="before">
+ <t t-if="widget.get('currency_info') and widget.get('currency_info').position === 'before'">
+ <t t-esc="widget.get('currency_info').symbol"/>
+ </t>
+ </t>
+ <t t-jquery="t:last" t-operation="after">
+ <t t-if="widget.get('currency_info') and widget.get('currency_info').position === 'after'">
+ <t t-esc="widget.get('currency_info').symbol"/>
+ </t>
+ </t>
+</t>
</templates>