details:   https://code.tryton.org/tryton/commit/9979a0f44ab0
branch:    7.8
user:      Cédric Krier <[email protected]>
date:      Sat Feb 28 12:57:24 2026 +0100
description:
        Limit digit to positive integer when formatting float in domain parser

        Closes #14557
        (grafted from 319126552d56ef1dd8a03e457071df0d40d0607e)
diffstat:

 sao/src/common.js                     |  1 +
 tryton/tryton/common/domain_parser.py |  4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diffs (25 lines):

diff -r fa6c74745b62 -r 9979a0f44ab0 sao/src/common.js
--- a/sao/src/common.js Mon Mar 02 14:15:14 2026 +0100
+++ b/sao/src/common.js Sat Feb 28 12:57:24 2026 +0100
@@ -2223,6 +2223,7 @@
                 }
                 var factor = Number(field.factor || 1);
                 digit -= Math.round(Math.log10(factor));
+                digit = Math.max(digit, 0);
                 return (value * factor).toLocaleString(
                     Sao.i18n.BC47(Sao.i18n.getlang()), {
                         useGrouping: true,
diff -r fa6c74745b62 -r 9979a0f44ab0 tryton/tryton/common/domain_parser.py
--- a/tryton/tryton/common/domain_parser.py     Mon Mar 02 14:15:14 2026 +0100
+++ b/tryton/tryton/common/domain_parser.py     Sat Feb 28 12:57:24 2026 +0100
@@ -354,8 +354,8 @@
             cast = float
         factor = cast(field.get('factor', 1))
         digit -= round(math.log10(factor))
-        return locale.localize(
-            '{0:.{1}f}'.format(value * factor or 0, digit), True)
+        digit = max(digit, 0)
+        return locale.localize('{0:.{1}f}'.format(value * factor, digit), True)
 
     def format_selection():
         if isinstance(field['selection'], (tuple, list)):

Reply via email to