From e50bc749f69a955af99fb85c635ddc5e06723b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 23 Feb 2022 13:03:47 +0000 Subject: [PATCH] [IMP] base: support decimalized in integer qweb formatting Purpose of this commit is to allow decimalized formatting of numbers when rendering integer fields in qweb. This is done through an option and will be used notably in elearning. Task-2607416 Part-of: odoo/odoo#74171 --- odoo/addons/base/models/ir_qweb_fields.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/models/ir_qweb_fields.py b/odoo/addons/base/models/ir_qweb_fields.py index 7d82c53777b..6ee26f0c085 100644 --- a/odoo/addons/base/models/ir_qweb_fields.py +++ b/odoo/addons/base/models/ir_qweb_fields.py @@ -10,7 +10,7 @@ from markupsafe import Markup as M, escape from PIL import Image from lxml import etree, html -from odoo import api, fields, models, _, _lt +from odoo import api, fields, models, _, _lt, tools from odoo.tools import posix_to_ldml, float_utils, format_date, format_duration, pycompat from odoo.tools.mail import safe_attrs from odoo.tools.misc import get_lang, babel_locale_parse @@ -136,8 +136,18 @@ class IntegerConverter(models.AbstractModel): _description = 'Qweb Field Integer' _inherit = 'ir.qweb.field' + @api.model + def get_available_options(self): + options = super(IntegerConverter, self).get_available_options() + options.update( + format_decimalized_number=dict(type='boolean', string=_('Decimalized number')), + ) + return options + @api.model def value_to_html(self, value, options): + if options.get('format_decimalized_number'): + return tools.format_decimalized_number(value) return pycompat.to_text(self.user_lang().format('%d', value, grouping=True).replace(r'-', '-\N{ZERO WIDTH NO-BREAK SPACE}'))