diff --git a/addons/website_profile/views/website_profile.xml b/addons/website_profile/views/website_profile.xml index b4aa9625c46..78673e78e5d 100644 --- a/addons/website_profile/views/website_profile.xml +++ b/addons/website_profile/views/website_profile.xml @@ -339,9 +339,15 @@ - / - - + / + + xp diff --git a/odoo/addons/base/models/ir_qweb_fields.py b/odoo/addons/base/models/ir_qweb_fields.py index 5bf43e581ad..cdc8fd1cc78 100644 --- a/odoo/addons/base/models/ir_qweb_fields.py +++ b/odoo/addons/base/models/ir_qweb_fields.py @@ -142,13 +142,14 @@ class IntegerConverter(models.AbstractModel): options = super(IntegerConverter, self).get_available_options() options.update( format_decimalized_number=dict(type='boolean', string=_('Decimalized number')), + precision_digits=dict(type='integer', string=_('Precision Digits')), ) return options @api.model def value_to_html(self, value, options): if options.get('format_decimalized_number'): - return tools.format_decimalized_number(value) + return tools.format_decimalized_number(value, options.get('precision_digits', 1)) return pycompat.to_text(self.user_lang().format('%d', value, grouping=True).replace(r'-', '-\N{ZERO WIDTH NO-BREAK SPACE}')) diff --git a/odoo/addons/base/tests/test_qweb_field.py b/odoo/addons/base/tests/test_qweb_field.py index 2320c474c56..4fb7823dcff 100644 --- a/odoo/addons/base/tests/test_qweb_field.py +++ b/odoo/addons/base/tests/test_qweb_field.py @@ -42,3 +42,17 @@ class TestQwebFieldTime(common.TransactionCase): # Only values inferior to 24 can be used with self.assertRaises(ValueError): self.value_to_html(24) + + +class TestQwebFieldInteger(common.TransactionCase): + def value_to_html(self, value, options=None): + options = options or {} + return self.env['ir.qweb.field.integer'].value_to_html(value, options) + + def test_integer_value_to_html(self): + self.assertEqual(self.value_to_html(1000), "1,000") + self.assertEqual(self.value_to_html(1000000, {'format_decimalized_number': True}), "1M") + self.assertEqual( + self.value_to_html(125125, {'format_decimalized_number': True, 'precision_digits': 3}), + "125.125k" + )