Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
2 Risposte
10918 Visualizzazioni

Is it possible get variable value from loop?

For example:

            <t t-set="flag" t-value="False"/>
            <!-- flag now False -->
            <tr t-foreach="o.lines" t-as="line">
                <td><span t-field="line.name"/></td>
                <td><span t-field="line.qty"/></td>
                <t t-set="flag" t-value="True"/>
                <!-- flag now True -->
            </tr>
            <!-- flag again False -->


Variable flag inside loop is different from variable flag outide. How send information outside loop?

Avatar
Abbandona

A patch and some ideas on how to calculate totals have been added to the github issue. https://github.com/odoo/odoo/issues/4461#issuecomment-72199618

Risposta migliore

There is a GitHub Issue #4461 on this problem.

UPDATE: A patch to v8 was released and some good programming suggestions were made by Olivier on how to avoid using loops.

Avatar
Abbandona

Updated my answer with the patch.

Autore Risposta migliore

Thank you Stephen Mack !

As a workaround we can use:

1) If you can insert output in last iteration then use like:

                <t t-set="total" t-value="0" />
                <t t-foreach="o.order_line" t-as="line">
                    <t t-set="total" t-value="total+line.quantity" />
                    <t t-if="line_last">
                        <t t-esc="total" />
                    </t>
                </t>

​​2) If you can't insert output in loop then use like:

                <t t-set="total" t-value="sum([line.quantity for line in o.order_line])" />

Avatar
Abbandona

Those are some ugly workarounds. But thanks for posting them.

Autore

I agree :(

Post correlati Risposte Visualizzazioni Attività
2
mar 24
1496
0
set 23
5152
1
ago 17
9836
1
mar 15
6110
11
apr 23
92606