From 3fbb5fad6f8aab29f36afeebad252599493a89bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 8 Apr 2026 14:31:55 +0200 Subject: [PATCH] Always remove spaces when converting value to number in domain parser Closes #14753 (grafted from 7c1f80fc2322fc6c47fc61990f3c7f64e9e86147) --HG-- branch : 6.0 --- sao/src/common.js | 1 + tryton/tryton/common/domain_parser.py | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sao/src/common.js b/sao/src/common.js index b5ddf0f502..b58cab421e 100644 --- a/sao/src/common.js +++ b/sao/src/common.js @@ -2025,6 +2025,7 @@ let [, thousandSeparator] = /^10(.)?000/.exec(format(10000)); let [, decimalSign] = /^0(.)1$/.exec(format(0.1)); return Number(string + .replace(new RegExp(' ', 'g'), '') .replace(new RegExp(thousandSeparator, 'g'), '') .replace(decimalSign, '.')); } diff --git a/tryton/tryton/common/domain_parser.py b/tryton/tryton/common/domain_parser.py index a4cbe44e54..c6039b341d 100644 --- a/tryton/tryton/common/domain_parser.py +++ b/tryton/tryton/common/domain_parser.py @@ -229,21 +229,21 @@ def convert_value(field, value, context=None): def convert_float(): factor = float(field.get('factor', 1)) try: - return locale.atof(value) / factor + return locale.atof(value.replace(' ', '')) / factor except (ValueError, AttributeError): return def convert_integer(): factor = float(field.get('factor', 1)) try: - return int(locale.atof(value) / factor) + return int(locale.atof(value.replace(' ', '')) / factor) except (ValueError, AttributeError): return def convert_numeric(): factor = Decimal(field.get('factor', 1)) try: - return Decimal(locale.delocalize(value)) / factor + return Decimal(locale.delocalize(value.replace(' ', ''))) / factor except (decimal.InvalidOperation, AttributeError): return