0
votes

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
2

2 Answers

2
votes

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.

0
votes

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.