0

I want add the same attribute to all matched items of an odoo xpath query inside a inherited qweb report template.

My code only change the colour of "1. aaa" to red. (the first matched item)

I can use "/*[@class='test_class'][2]" for the second item, but this is not a solution there are to many items with "test_class" inside the inherited report.

<template id="test_report_document_raw">

 <h2 class="test_class">1. aaa</h2>

 <h2 class="test_class">2. bbb</h2>

 <h2 class="test_class">3. ccc</h2>

 ...

</template>

<template id="test_report_document" inherit_id="test.test_report_document_raw" primary="True">

 <xpath expr="//*[@class='test_class']" position="attributes">

      <attribute name="style">color: red;</attribute>

   </xpath>

</template
int_tow
  • 73
  • 6

2 Answers2

2

AFAIK it is an Openerp bug which doesn't consider multiple xpath corrispondances.

In alternative you could override fields_view_get and use xpath through lxml library.

Alessandro Ruffolo
  • 1,575
  • 1
  • 16
  • 34
0

As you said you can use the xpath expressions "/*[@class='test_class'][2]","/*[@class='test_class'][3]",..,"/*[@class='test_class'][2]" and so on and update the style.

Other solution is to update the css class with your new style. So all where ever you are using this class 'test_class' there all this change will affect.

OmaL
  • 5,037
  • 3
  • 31
  • 48