Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Qweb if-else condition?

By
Gavin Yap
on 7/30/15, 12:08 AM 3,899 views

Hi,

Currently I am doing this

 <tbody>
<t t-foreach="get_payslip_lines(o.line_ids)" t-as="p">
<tr>
<t t-if="p.code == 'BASIC' or p.code == 'GROSS' or p.code == 'NET' or p.code == 'TOTAL' ">
<td><b><span t-field="p.code"/></b></td>
<td><b><span t-field="p.name"/></b></td>
<!-- <td><span t-field="p.quantity"/></td> -->
<td><b><span t-esc="formatLang(p.amount, currency_obj=o.company_id.currency_id)"/></b></td>
<td><b><span t-esc="formatLang(p.total, currency_obj=o.company_id.currency_id)"/></b></td>
</t>
<t t-if="p.code != 'BASIC' and p.code != 'GROSS' and p.code != 'NET' and p.code != 'TOTAL' ">
<td><span t-field="p.code"/></td>
<td><span t-field="p.name"/></td>
<!-- <td><span t-field="p.quantity"/></td> -->
<td><span t-esc="formatLang(p.amount, currency_obj=o.company_id.currency_id)"/></td>
<td><span t-esc="formatLang(p.total, currency_obj=o.company_id.currency_id)"/></td>
</t>
</tr>
</t>
</tbody>


I tried to search there isn't an example on Qweb's if else example.





1
Rucha Dave (rda)
On 7/30/15, 1:08 AM

Hello,

Generally we use ,

<t t-if="p.code == 'BASIC'">

    executable statement..

</t>

for false condition,

<t t-if="not p.code == 'BASIC'">

    executable statement..

</t>

Regards,

Thanks. How, this solution doesn't seem much difference to my except you use "not" to negate the condition. I still have to specify the list of conditions to do that.

Gavin Yap
on 8/4/15, 5:00 AM
1
HappyOdoo
On 7/30/15, 1:08 AM

hi

this is my invoice Report.In this Report if condition available if amount to text filed is yes then it's print  amount to text in report and if no then condition false so, it's not print.


<?xml version="1.0" encoding="utf-8"?>

<openerp>

<data>

<template id="report_invoice_document_inherit" inherit_id="account.report_invoice_document">

<xpath expr="//p[@t-if='o.fiscal_position']" position="after">

<p>

<span t-if="o.amount_text_need == 'yes'">

<!--<span t-if="o.currency_id == '21'">-->

<strong>Amount in Word:</strong>

<span t-esc="o.amount_to_text(o.amount_total, 'USD')"/></span>

</p>

</xpath>

</template>

</data>

</openerp>



and in your code

if condition is

<t t-if="p.code == 'BASIC' or p.code == 'GROSS' or p.code == 'NET' or p.code == 'TOTAL' "> 

Thanks. if you read my code, what I am trying to achieve is to bold Basic,Gross,Net and Total, and leave the rest unbold.

Gavin Yap
on 8/4/15, 5:04 AM

first you have to check p.code value is coming from print p.code value in report and see what actually values are come.

HappyOdoo
on 8/4/15, 5:34 AM

that is what my code is doing and works, but that I need a more elegant way for doing conditions.

Gavin Yap
on 8/5/15, 2:21 AM
0
Samer Al-Sarhan
On 2/25/16, 7:49 AM

Dear it is the same conndition test of python 

Your Answer

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

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 7/30/15, 12:08 AM
Seen: 3899 times
Last updated: 4/17/16, 8:35 AM