Odoo - 使用 colspan 或可能是 col 查看自定义
Odoo - View customization with colspan or may be col
我正在使用 odoo 10-e。早些时候我问了一个问题,我们如何合并两个或多个 header 以针对多个字段显示一个 header
.所以答案很好并且有效,但现在我想在 one2many 树视图中以形式进行更多自定义。我想要这样的东西。
我也希望在行中添加边框,但对于特定的列以及每列仅包含一次的子标题。
我尝试在 odoo 视图中添加 div
但它不受支持。我也尝试将它添加到组下,但那也不起作用。
将下面的代码添加到同一个文件中 colspan.xml 正如我给出的答案。
就是这样,你可以使用 subheading 和 col_border 属性,因为我添加了 conspan.
<field name="one2manyfield">
<tree>
<field name="field1" subheading="SubHeading"/>
<field name="field2" col_border="1"/>
</tree>
</field>
要添加的代码 colspan.xml
<t t-name="ListView.rows" >
<t t-set="first_column" t-value="1"/>
<t t-foreach="records.length" t-as="index">
<t t-call="ListView.row">
<t t-set="record" t-value="records.at(index)"/>
</t>
<t t-set="first_column" t-value="0"/>
</t>
</t>
<tr t-name="ListView.row"
t-att-data-id="record.get('id')"
t-attf-style="#{(view.fonts || view.colors) ? view.style_for(record) : ''}"
t-attf-class="#{view.compute_decoration_classnames(record)}">
<t t-set="asData" t-value="record.toForm().data"/>
<t t-foreach="columns" t-as="column">
<td t-if="column.meta"> </td>
</t>
<td t-if="options.selectable" class="o_list_record_selector">
<t t-set="checked" t-value="options.select_view_id == record.get('id') ? 'checked' : null"/>
<input t-if="options.radio" type="radio" name="radiogroup" t-att-checked="checked"/>
<div t-if="!options.radio" class="o_checkbox">
<input type="checkbox" name="radiogroup" t-att-checked="checked"/><span/>
</div>
</td>
<t t-foreach="columns" t-as="column">
<t t-set="number" t-value="column.type === 'integer' or column.type == 'float' or column.type == 'monetary'"/>
<t t-set="text" t-value="column.type === 'text'"/>
<t t-set="modifiers" t-value="column.modifiers_for(asData)"/>
<td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
t-attf-class="#{modifiers.readonly ? 'o_readonly' : ''} #{number ? 'o_list_number' : ''} #{text ? 'o_list_text' : ''} #{column.id === 'sequence' ? 'o_handle_cell' : ''} #{column.tag === 'button' ? 'o_list_button' : ''}"
t-att-style="column.col_border === 1 ? 'border-left:1px solid black!important;border-right:1px solid black!important' : ''"
t-att-data-field="column.id"
>
<t t-if="!column.subheading or first_column === 0">
<t t-raw="render_cell(record, column)"/>
</t>
<t t-if="first_column === 1 and column.subheading">
<div class="text-center"><span><b><t t-esc="column.subheading"/></b></span></div><br/><t t-raw="render_cell(record, column)"/>
</t>
</td>
</t>
<td t-if="options.deletable" class='o_list_record_delete'>
<span name="delete" class="fa fa-trash-o"/>
</td>
</tr>
我正在使用 odoo 10-e。早些时候我问了一个问题,我们如何合并两个或多个 header 以针对多个字段显示一个 header
我也希望在行中添加边框,但对于特定的列以及每列仅包含一次的子标题。
我尝试在 odoo 视图中添加 div
但它不受支持。我也尝试将它添加到组下,但那也不起作用。
将下面的代码添加到同一个文件中 colspan.xml
就是这样,你可以使用 subheading 和 col_border 属性,因为我添加了 conspan.
<field name="one2manyfield">
<tree>
<field name="field1" subheading="SubHeading"/>
<field name="field2" col_border="1"/>
</tree>
</field>
要添加的代码 colspan.xml
<t t-name="ListView.rows" >
<t t-set="first_column" t-value="1"/>
<t t-foreach="records.length" t-as="index">
<t t-call="ListView.row">
<t t-set="record" t-value="records.at(index)"/>
</t>
<t t-set="first_column" t-value="0"/>
</t>
</t>
<tr t-name="ListView.row"
t-att-data-id="record.get('id')"
t-attf-style="#{(view.fonts || view.colors) ? view.style_for(record) : ''}"
t-attf-class="#{view.compute_decoration_classnames(record)}">
<t t-set="asData" t-value="record.toForm().data"/>
<t t-foreach="columns" t-as="column">
<td t-if="column.meta"> </td>
</t>
<td t-if="options.selectable" class="o_list_record_selector">
<t t-set="checked" t-value="options.select_view_id == record.get('id') ? 'checked' : null"/>
<input t-if="options.radio" type="radio" name="radiogroup" t-att-checked="checked"/>
<div t-if="!options.radio" class="o_checkbox">
<input type="checkbox" name="radiogroup" t-att-checked="checked"/><span/>
</div>
</td>
<t t-foreach="columns" t-as="column">
<t t-set="number" t-value="column.type === 'integer' or column.type == 'float' or column.type == 'monetary'"/>
<t t-set="text" t-value="column.type === 'text'"/>
<t t-set="modifiers" t-value="column.modifiers_for(asData)"/>
<td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
t-attf-class="#{modifiers.readonly ? 'o_readonly' : ''} #{number ? 'o_list_number' : ''} #{text ? 'o_list_text' : ''} #{column.id === 'sequence' ? 'o_handle_cell' : ''} #{column.tag === 'button' ? 'o_list_button' : ''}"
t-att-style="column.col_border === 1 ? 'border-left:1px solid black!important;border-right:1px solid black!important' : ''"
t-att-data-field="column.id"
>
<t t-if="!column.subheading or first_column === 0">
<t t-raw="render_cell(record, column)"/>
</t>
<t t-if="first_column === 1 and column.subheading">
<div class="text-center"><span><b><t t-esc="column.subheading"/></b></span></div><br/><t t-raw="render_cell(record, column)"/>
</t>
</td>
</t>
<td t-if="options.deletable" class='o_list_record_delete'>
<span name="delete" class="fa fa-trash-o"/>
</td>
</tr>