Odoo - 使用 colspan 或可能是 col 查看自定义

Odoo - View customization with colspan or may be col

我正在使用 odoo 10-e。早些时候我问了一个问题,我们如何合并两个或多个 header 以针对多个字段显示一个 header .所以答案很好并且有效,但现在我想在 one2many 树视图中以形式进行更多自定义。我想要这样的东西。

我也希望在行中添加边框,但对于特定的列以及每列仅包含一次的子标题。

我尝试在 odoo 视图中添加 div 但它不受支持。我也尝试将它添加到组下,但那也不起作用。

将下面的代码添加到同一个文件中 colspan.xml 正如我给出的答案。

就是这样,你可以使用 subheadingcol_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>