From 550a47c1f8e5440debb1c22f2e82864ce2d1d253 Mon Sep 17 00:00:00 2001 From: Victor Feyens Date: Wed, 21 Oct 2020 15:12:59 +0000 Subject: [PATCH] [IMP] base: warning on decimal precision change --- odoo/addons/base/models/decimal_precision.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/models/decimal_precision.py b/odoo/addons/base/models/decimal_precision.py index 11f50b3415c..5803348ad90 100644 --- a/odoo/addons/base/models/decimal_precision.py +++ b/odoo/addons/base/models/decimal_precision.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import api, fields, models, tools +from odoo import api, fields, models, tools, _ import odoo.addons import logging @@ -49,6 +49,23 @@ class DecimalPrecision(models.Model): self.clear_caches() return res + @api.onchange('digits') + def _onchange_digits_warning(self): + if self.digits < self._origin.digits: + return { + 'warning': { + 'title': _("Warning for %s", self.name), + 'message': _( + "The precision has been reduced for %s.\n" + "Note that existing data WON'T be updated by this change.\n\n" + "As decimal precisions impact the whole system, this may cause critical issues.\n" + "E.g. reducing the precision could disturb your financial balance.\n\n" + "Therefore, changing decimal precisions in a running database is not recommended.", + self.name, + ) + } + } + # compatibility for decimal_precision.get_precision(): expose the module in addons namespace dp = sys.modules['odoo.addons.base.models.decimal_precision'] odoo.addons.decimal_precision = dp