Hello. I have foud this example on the forum:
<t t-set="i" t-value="1"/>
<tr t-foreach="o.order_line" t-as="l">
<td> <span t-esc="i"/> </td>
<t t-set="i" t-value="i+1"/>
Any value to a variable set inside the loop, exsists only as loong as the loop exsists. If you try: <span t-esc="i"/> after the loop, you will see that the value is again 1. You cannot set the value of variable declaired outside the loop. Where should this bug be reported?
A discussion exits on github, you can check here https://github.com/odoo/odoo/issues/4461#issuecomment-72199618 the explication of Odony to know how to do it easily...
The propagation has been added since commit 4a698da (https://github.com/odoo/odoo/commit/4a698da) but in most case it should not be used to make sum, ... Qweb is for templating...
Have a good day
Ok foud a workaround.
In my case I wanted to check if one ore more products belongs to a group. If the condiditon was true a div containig table and data is visible, if not its hidden. So I made something like this:
<div t-if=" True in [z.product_id.categ_id.name == 'WiMax' for z in o.order_line]" >...(your content goes here ).</div>
You can make inline labda function to loop over "o.order_line" and chek if "o.order_line.product_id.categ_id.name" (this is the category name) of each line is the category name you are looking for. This will result in list ex. [False, False, False, False, True]. So "True in [...]" evaluates if there is True in the list. Hope you can use the same logic in your problem.
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 12/24/14, 8:27 AM|
|Seen: 2084 times|
|Last updated: 3/16/15, 8:10 AM|