跳至內容
選單
此問題已被標幟
1 回覆
11456 瀏覽次數

I wanna extend the ListView.row in the web module base.xml Line:770

<tr t-name="ListView.row"
        t-att-data-id="record.get('id')"
        t-att-style="view.style_for(record)">
    <t t-set="asData" t-value="record.toForm().data"/>
    <t t-foreach="columns" t-as="column">
        <td t-if="column.meta"> </td>
    </t>
    <th t-if="options.selectable" class="oe_list_record_selector" width="1">
        <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"/>
        <input t-if="!options.radio" type="checkbox" name="radiogroup" t-att-checked="checked"/>
    </th>
    <t t-foreach="columns" t-as="column">
        <t t-set="number" t-value="column.type === 'integer' or column.type == 'float'"/>
        <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="oe_list_field_cell oe_list_field_#{column.widget or column.type} 
                         #{number ?  'oe_number' : ''} 
                         #{column.tag === 'button' ? 'oe-button' : ''} #{modifiers.readonly ? 'oe_readonly' : ''} 
                         #{modifiers.required ? 'oe_required' : ''} "
            t-att-data-field="column.id"
            ><t t-raw="render_cell(record, column)"/></td>
    </t>
    <td t-if="options.deletable" class='oe_list_record_delete' width="13px">
        <button type="button" name="delete" class="oe_i">d</button>
    </td>
</tr>

So I can add some code to the 't-attf-class' of the td element. But my approaches didnt work:

<templates>
<tr t-extend="ListView.row">
    <t t-jquery="td" t-operation="replace">
        <td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
            t-attf-class="oe_list_field_cell oe_list_field_#{column.widget or column.type} 
            #{number ?  'oe_number' : ''} 
            #{column.tag === 'button' ? 'oe-button' : ''} #{modifiers.readonly ? 'oe_readonly' : ''} 
            #{modifiers.required ? 'oe_required' : ''} 
            #{value_check(record.get(column.id), column.id) ? 'oe_custom_view' : 'oE_3o'}"
            t-att-data-field="column.id">
            <t t-raw="render_cell(record, column)"/>
        </td -->
    </t>
</tr>
</templates>

OpenErp tells me that it doesn't know the "column".

Any suggestions?

頭像
捨棄
作者 最佳答案

OK, I solved it: these lines

<t t-foreach="columns" t-as="column">
<t t-set="number" t-value="column.type === 'integer' or column.type ==   'float'"/> <t t-set="modifiers" t-value="column.modifiers_for(asData)"/>

are also needed and must be included in the inherited template so it knows the "column" like this:

<templates>
<tr t-extend="ListView.row">
<t t-jquery="td" t-operation="replace">
<t t-foreach="columns"   t-as="column">
<t t-set="number" t-value="column.type === 'integer' or column.type == 'float'"/>
<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="oe_list_field_cell oe_list_field_#{column.widget or column.type} #{number ? 'oe_number' : ''} #{column.tag === 'button' ? 'oe-button' : ''} #{modifiers.readonly ? 'oe_readonly' : ''}  #{modifiers.required ? 'oe_required' : ''} #{column.value_check(record.get(column.id), column.id) ? 'oe_cust_view' : ''}" t-att-data-field="column.id">
<t t-raw="render_cell(record, column)"/>
</td >
</t>
</t>
</tr>
</templates>

To call a custom JS function like "value_check" and not get something like:

dict.value_check is not a function

take a look at:

http://www.odoo.com/forum/Help-1/question/cannot-call-custom-JS-from-inherited-qweb-template-49260

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
1
6月 24
1278
1
3月 21
3274
Inherit Qweb 已解決
4
2月 24
48137
0
5月 22
3353
0
7月 21
8862