Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
5 Replies
27173 Tampilan

I want to do something like this, but it does not works:

<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<tr t-extend="ListView.row" t-att-class="view.class_for(record)">
</tr>
</templates>

Just want to add t-att-class to the tr element. The problem is that tr is the root node, and I cant figure out how to refer it for inheritance. Can someone help me?

The original template looks like this:

<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>

Avatar
Buang
Jawaban Terbai

try this one. if not working, dig into manual deeper from v7.

<t t-extend="ListView.row">
<xpath expr="//tr[@t-name='Listview.row']" position="attributes">
<attribute name="t-att-class">view.class_for(record)</attribute> <xpath>
</t>
Avatar
Buang
Penulis Jawaban Terbai

Hi Dhinesh,

I have tried your code but does not work for me. Currently I am using this approach that adds the class property at td level, but what I want is to add it at tr level:


<t t-extend="ListView.row">
  <t t-jquery="td[t-att-data-field='column.id']">
  this.attr('t-attf-class', this.attr('t-attf-class') + ' #{view.class_for(record)}');
  </t>
</t>
Avatar
Buang
Jawaban Terbai

Your code does not in working

Avatar
Buang
Jawaban Terbai

Its a litte bit late but maybe it will help someone who is also stumbling over this topic.

I'm using the following code to add custom CSS to the rows and to the cells:

<t t-extend="ListView.row">
    <t t-jquery="tr">
        this.context.setAttribute('t-att-class', 'view.class_for(record)');
    </t>
  <t t-jquery="td[t-att-data-field='column.id']">
      this.attr('t-attf-class', this.attr('t-attf-class') + ' {{view.class_for_cell(record, column)}}');
  </t>
</t>

The method "class_for_cell" is an own function to extract the information from the field and set the specific class to the cell.

Working with V8.

Avatar
Buang
Jawaban Terbai

Hi,

You can just use the Qweb Js inheritance by extending the t-name and adding the new class like below:

<?xml version="1.0" encoding="UTF-8"?>
<templates>
    <t t-extend="ListView.row">
        <t t-jquery="tr[t-att-data-id*='record.get('id')']">
            this.attr('t-attf-class', this.attr("t-attf-class") + 'view.class_for(record)');
        </t>
    </t>
</templates>
Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
1
Nov 19
8400
0
Jun 23
1819
2
Des 22
22832
0
Jul 21
2033
Qweb Inheritance Diselesaikan
3
Nov 19
7655