0

In a Odoo version 17 model, the Total Volume (total_cbm) is declared with 3 decimal digits

total_cbm = fields.Float(string="Total Volume (CBM)", digits=(16, 3))

However, in the XML template inside the tree view, it was summed up, but the sum does not have 3 decimal digits

<page string="Package Details">
    <group invisible="transport == 'air'">
        <field name="freight_packages" nolabel="1" widget="one2many_list">
            <tree string="Package">
        <field name="name" />
        <field name="seal_number"/>
        <field name="package_type"/>
        <field name="package" required="1"/>
        <field name="container_type" optional="hide"/>
        <field name="qty" sum="Total Qty."/>
        <field name="volume"/>
        <field name="gross_weight"/>
        <field name="net_weight" sum="Total Net"/>
        <field name="total_cbm" sum="Total Volume"/>
        <field name="line_added" column_invisible="1"/>
        <button name="action_insert_line_service" type="object" string="Add to Service" icon="fa-plus-square-o" invisible="line_added"/>
        </tree>
        <form string="Package">
        <field name="container_name_hidden" invisible="1"/>
        <field name="seal_number_hidden" invisible="1"/>
        <field name="container_type_hidden" invisible="1"/>
        <field name="type_hidden" invisible="1"/>
                <field name="carrier_seal_hidden" invisible="1"/>
        <field name="container_name_required" invisible="1"/>
        <field name="seal_number_required" invisible="1"/>
        <field name="container_type_required" invisible="1"/>
        ...
             ...

Sample Tree View

I tried adding digits inside the tree but it produced an error.

<field name="total_cbm" sum="Total Volume" digits="(16, 3)"/>

UncaughtPromiseError > OwlError Uncaught Promise > An error occured in the owl lifecycle (see this Error's "cause" property) OwlError: An error occured in the owl lifecycle (see this Error's "cause" property) Error: An error occured in the owl lifecycle (see this Error's "cause" property) at handleError at App.handleError ... Caused by: SyntaxError: Unexpected token '(', "(16,3)" is not valid JSON at JSON.parse ()

What is the correct way to format the total with 3 digits?

3
  • Use brackets instead of parenthesis Commented Feb 20 at 13:30
  • It threw an error OwlError: An error occured in the owl lifecycle (see this Error's "cause" property) Error: An error occured in the owl lifecycle (see this Error's "cause" property) ... Caused by: SyntaxError: Expected property name or '}' in JSON at position 1 (line 1 column 2) at JSON.parse (<anonymous>) Commented Feb 23 at 3:36
  • Odoo will use the JSON.parse function, you can try it in your browser. Commented Feb 23 at 8:23

1 Answer 1

0

What if you try to define float:

<field name="total_cbm_display" sum="Total Volume" widget="float"/>

But I think this is the default setting.

To set the precision see also this answer on SO!

Sign up to request clarification or add additional context in comments.

1 Comment

We have similar issue as with the link you have shared. However, I only need the 3 digits for this particular field, the other field should be still 2 digits. Checking on the Precision settings, it does not specify which field (I am using a 3rd party module, and the fields are not showing)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.