From 8a7475a761a31822bd2795da99418c2540598ab0 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Wed, 19 Mar 2025 13:58:47 +0000 Subject: [PATCH] [IMP] base_usability: monkey patch formatLang --- base_usability/models/__init__.py | 1 + base_usability/models/misc.py | 39 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 base_usability/models/misc.py diff --git a/base_usability/models/__init__.py b/base_usability/models/__init__.py index 3b15f76..701c3aa 100644 --- a/base_usability/models/__init__.py +++ b/base_usability/models/__init__.py @@ -6,3 +6,4 @@ from . import res_company from . import ir_mail_server from . import ir_actions_report from . import ir_model +from . import misc diff --git a/base_usability/models/misc.py b/base_usability/models/misc.py new file mode 100644 index 0000000..01bd1ba --- /dev/null +++ b/base_usability/models/misc.py @@ -0,0 +1,39 @@ +# Copyright 2025 Akretion France (https://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, api +from odoo.tools import misc +from openerp.tools import float_compare + + +class BaseUsabilityInstalled(models.AbstractModel): + _name = "base.usability.installed" + _description = "Base Usability Installed" + + +formatLang_original = misc.formatLang + + +def formatLang( + self, value, digits=None, grouping=True, + monetary=False, dp=False, currency_obj=False, int_no_digits=True): + with api.Environment.manage(): + env = api.Environment(self.cr, self.uid, {}) + if ( + 'base.usability.installed' in env and + int_no_digits and + not monetary and + isinstance(value, float) and + dp): + prec = env['decimal.precision'].precision_get(dp) + if not float_compare(value, int(value), precision_digits=prec): + digits = 0 + dp = False + res = formatLang_original( + self, value, digits=digits, grouping=grouping, + monetary=monetary, dp=dp, currency_obj=currency_obj) + return res + + +misc.formatLang = formatLang