Skip to Content
Menu
This question has been flagged
3 Replies
6402 Views

Hello, here it is the line taht display the qty available in stock of a product in the product kanban view

<li t-if="record.type.raw_value == 'product'">On hand: <field name="qty_available"/> <field name="uom_id"/></li>

Is there a way to add a second line to display the stock in an another unit, by dividing the value <field name="qty_available"/> by the value of <field name="uom_id.factor"/>


JUST in the XML file !! ??


Thanks a lot.

 

Avatar
Discard
Best Answer

I guess, yes. Have a look at the documentation - - https://www.odoo.com/documentation/11.0/reference/qweb.html#setting-variables

For the example have a look at https://github.com/odoo/odoo/blob/12.0/addons/project/views/project_rating_templates.xml – for instance at the template 'portal_project_rating_progressbar'

Besides, take into account that in kanban:

  1. In that case you should apply by raw_value like record.qty_available.raw_value

  2. To be used as raw value the field should be defined before the kanban tag (have a look at any core odoo kanban)


Finally, just to express my opinion: it doesn't seem really reasonable to make those calculations in xml, since you can calculate them in Python and store them in PostgreSQL. Otherwise, this calculation will take place any time you open your kanban for each record shown (after grouping there might be thousands of records). But that it is surely up to you :)


Avatar
Discard
Author Best Answer

Hi Pujara Geet, thanks for your answer, but i don't really understand what you mean. Your code gave me a loop and all other existing units and display again the same Qty.


Maybe i don't explain very well what i want to do :

The "default" line of code in stock.product_template_kanban_stock_view

display for example :

On hand: 5,000 CARTON X8  (because the unit i define for this product is a box of 8 pieces)

and i want to display just under a second line 

On hand: 40,000 PIECES 

so i need in the XLM to make the math operation Qty*uom_id.factor to calculate 40.


Avatar
Discard
Best Answer

In Your XML(e.g product.xml) File You can Use This Code:


        <record model="ir.ui.view" id="product_template_kanban_stock_view_inherit">
            <field name="name">Product Template Kanban Stock</field>
            <field name="model">product.template</field>
            <field name="inherit_id" ref="stock.product_template_kanban_stock_view"/>
            <field name="arch" type="xml">
                <xpath expr="//ul[1]/li[1]" position="after">
                  <li t-foreach="record.uom_id.raw_value" t-as='o'>
                    <field name="qty_available"/> by the value of <t t-esc="o.factor"/>
                  </li>
                </xpath>
            </field>
        </record>

Avatar
Discard