</tr>
</table>
</form>
-<t t-name="Widget">
- Unhandled widget
- <t t-js="dict">console.warn('Unhandled widget', dict.widget);</t>
-</t>
-<t t-name="WidgetFrame">
- <table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
- <tr t-foreach="widget.table" t-as="row">
- <t t-foreach="row" t-as="td">
- <td t-att-colspan="td.colspan gt 1 ? td.colspan : undefined"
- t-att-width="td.width"
- t-att-valign="td.table ? 'top' : undefined"
- t-attf-class="oe_form_frame_cell #{td.classname} #{td.element_class}"
- >
- <t t-raw="td.render()"/>
- </td>
- </t>
- </tr>
- </table>
-</t>
-<t t-name="WidgetFrame.readonly" t-extend="WidgetFrame">
- <t t-jquery=">table">
- this.attr('class', this.attr('class')+' oe_form_readonly');
- </t>
-</t>
-<t t-name="WidgetGroup">
+
+<t t-name="FormRenderingGroup">
<t t-set="table">
- <table border="1" cellpadding="0" cellspacing="0" width="100%"/>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%"/>
</t>
- <t t-if="widget.node_attrs.string">
+ <t t-if="string">
<fieldset class="oe_group_box">
- <legend><t t-esc="widget.node_attrs.string"/></legend>
+ <legend><t t-esc="string"/></legend>
<t t-raw="table"/>
</fieldset>
</t>
- <t t-if="!widget.node_attrs.string">
+ <t t-if="!string">
<t t-raw="table"/>
</t>
</t>
-<t t-name="WidgetNotebook">
+<t t-name="FormRenderingNotebook">
<div class="oe_form_notebook">
<ul>
- <li t-foreach="widget.pages" t-as="page">
- <a t-attf-href="##{page.page_id}">
- <t t-esc="page.node_attrs.string"/>
+ <li t-foreach="pages" t-as="page">
+ <a t-attf-href="##{page.id}">
+ <t t-esc="page.string"/>
</a>
</li>
</ul>
</div>
</t>
-<t t-name="WidgetNotebook.tooltip">
- <t t-foreach="widget.pages" t-as="page">
- <div class="oe_tooltip_string">
- Notebook Page "<t t-esc="page.string"/>"
- </div>
- <ul class="oe_tooltip_technical">
- <li data-item="modifiers">
- <span class="oe_tooltip_technical_title">Modifiers:</span>
- <t t-esc="page.node.attrs.modifiers"/>
- </li>
- </ul>
- </t>
-</t>
-<t t-name="WidgetNotebookPage">
- <div class="oe_form_notebook_page" t-att-id="widget.page_id"/>
+<t t-name="FormRenderingNotebookPage">
+ <div class="oe_form_notebook_page" t-att-id="id"/>
</t>
-<t t-name="WidgetSeparator">
- <div t-if="widget.orientation !== 'vertical'" t-att-class="'separator ' + widget.orientation">
- <t t-esc="widget.node_attrs.string"/>
+<t t-name="FormRenderingSeparator">
+ <div class="oe_horizontal_separator">
+ <t t-esc="string"/>
</div>
</t>
-<t t-name="WidgetLabel">
- <label t-att-for="widget.node_attrs.for"
- t-attf-class="oe_label#{widget.node_attrs.help ? '_help' : ''} oe_align_#{widget.align}">
- <t t-esc="widget.node_attrs.string"/>
- <span t-if="widget.node_attrs.help">?</span>
+<t t-name="FormRenderingLabel">
+ <label t-att-for="for"
+ t-att-title="help"
+ t-attf-class="oe_label#{help ? '_help' : ''} oe_align_#{align}">
+ <t t-esc="string"/>
+ <span t-if="help">?</span>
:
</label>
</t>
+
+<t t-name="Widget">
+ Unhandled widget
+ <t t-js="dict">console.warn('Unhandled widget', dict.widget);</t>
+</t>
<t t-name="WidgetLabel.tooltip">
<div class="oe_tooltip_string" t-if="widget.string">
- <t t-esc="widget.string"/> <t t-if="debug and widget.nolabel">(nolabel)</t>
+ <t t-esc="widget.node.attrs.string"/> <t t-if="debug and widget.nolabel">(nolabel)</t>
</div>
<p t-if="widget.help" class="oe_tooltip_help"><t t-esc="widget.help"/></p>
<ul t-if="debug" class="oe_tooltip_technical">
</ul>
</t>
<t t-name="FieldChar">
- <input t-att-type="widget.password ? 'password' : 'text'" size="1"
- t-att-name="widget.name"
- t-att-id="widget.node_attrs.id"
- t-attf-class="field_#{widget.type} #{_(['integer', 'float', 'float_time']).contains(widget.type) ? 'oe-number' : ''}"
- style="width: 100%"
- /><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"/>
+ <div t-attf-class="oe_form_field_#{type}">
+ <input t-att-type="widget.password ? 'password' : 'text'" size="1"
+ t-att-name="widget.name"
+ t-att-id="widget.node.attrs.id"
+ t-attf-class="field_#{widget.type} #{_(['integer', 'float', 'float_time']).contains(widget.type) ? 'oe-number' : ''}"
+ style="width: 100%"
+ /><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"/>
+ </div>
</t>
<t t-name="FieldChar.readonly">
<div
</div>
</t>
<t t-name="FieldEmail">
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="100%">
<t t-call="FieldChar"/>
</table>
</t>
<t t-name="FieldUrl">
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="100%">
<t t-call="FieldChar"/>
</table>
</t>
<t t-name="FieldText">
- <textarea rows="6"
- t-att-name="widget.name"
- t-att-id="widget.element_id"
- t-attf-class="field_#{widget.type}"
- style="width: 100%"
- ></textarea><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"/>
+ <div t-attf-class="oe_form_field_#{type}">
+ <textarea rows="6"
+ t-att-name="widget.name"
+ t-attf-class="field_#{widget.type}"
+ style="width: 100%"
+ ></textarea><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"/>
+ </div>
</t>
<t t-name="web.datetimepicker">
- <div class="oe_datepicker_root">
+ <div class="oe_datepicker_root" t-attf-class="oe_form_field_#{type}">
<input type="text" size="1" class="oe_datepicker_container" disabled="disabled" style="display: none;"/>
<input type="text" size="1" style="width: 100%"
t-att-name="widget.name"
</div>
</t>
<t t-name="FieldSelection">
- <span class="oe_field_selection">
+ <div t-attf-class="oe_form_field_#{type}">
<select
t-att-name="widget.name"
- t-att-id="widget.node_attrs.id"
+ t-att-id="widget.node.attrs.id"
style="width: 100%">
<t t-foreach="widget.values" t-as="option">
<option><t t-esc="option[1]"/></option>
</t>
</select>
- </span>
+ </div>
</t>
<t t-name="FieldMany2One">
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="100%" valign="top">
<t t-call="FieldChar"/>
</tr>
</table>
</t>
+<t t-name="FieldMany2One_readonly">
+ <a href="#" class="oe_form_uri"/>
+</t>
<t t-name="FieldMany2One.context_menu">
<ul>
<li t-att-id="widget.cm_id + '_open'" style="color:grey" class="oe_m2o_menu_item_mandatory">Open...</li>
<t t-name="FieldOne2Many">
</t>
<t t-name="FieldMany2Many">
- <div t-att-id="widget.list_id"></div>
+ <div t-attf-class="oe_form_field_#{type}" t-att-id="widget.list_id"></div>
</t>
<t t-name="FieldReference">
- <table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
+ <table t-attf-class="oe_form_field_#{type}" border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
<tr>
<td t-attf-class="oe_form_frame_cell oe_form_selection oe_form_view_reference_selection">
</td>
</table>
</t>
<t t-name="FieldBoolean">
- <input type="checkbox"
- t-att-name="widget.name"
- t-att-id="widget.element_id"
- t-attf-class="field_#{widget.type}"/>
+ <div t-attf-class="oe_form_field_#{type}">
+ <input type="checkbox"
+ t-att-name="widget.name"
+ t-attf-class="field_#{widget.type}"/>
+ </div>
</t>
<t t-name="FieldProgressBar">
- <div t-opentag="true" class="oe-progressbar">
+ <div t-attf-class="oe_form_field_#{type}" t-opentag="true">
<span></span>
</div>
</t>
<t t-name="FieldBinaryImage">
- <table cellpadding="0" cellspacing="0" border="0">
+ <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center">
<img t-att-src='_s + "/web/static/src/img/placeholder.png"' class="oe-binary-image"
</table>
</t>
<t t-name="FieldBinaryFile">
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <table t-attf-class="oe_form_field_#{type}" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="100%">
<input type="text" size="1" readonly="readonly"
</table>
</t>
<t t-name="WidgetButton">
- <button type="button" class="oe_button">
- <img t-if="widget.node_attrs.icon" t-att-src="_s + '/web/static/src/img/icons/' + widget.node_attrs.icon + '.png'" width="16" height="16"/>
- <span t-if="widget.string"><t t-esc="widget.string"/></span>
- </button>
+ <div t-attf-class="oe_form_field_#{type}">
+ <button type="button" class="oe_button">
+ <img t-if="widget.node.attrs.icon" t-att-src="_s + '/web/static/src/img/icons/' + widget.node.attrs.icon + '.png'" width="16" height="16"/>
+ <span t-if="widget.string"><t t-esc="widget.string"/></span>
+ </button>
+ </div>
</t>
<t t-name="WidgetButton.tooltip" t-extend="WidgetLabel.tooltip">
<t t-jquery="div.oe_tooltip_string" t-operation="replace">