details: https://code.tryton.org/tryton/commit/e3a2a15b4eb9
branch: 7.8
user: Cédric Krier <[email protected]>
date: Wed Apr 08 14:31:55 2026 +0200
description:
Always remove spaces when converting value to number in domain parser
Closes #14753
(grafted from 7c1f80fc2322fc6c47fc61990f3c7f64e9e86147)
diffstat:
sao/src/common.js | 1 +
tryton/tryton/common/domain_parser.py | 6 +++---
2 files changed, 4 insertions(+), 3 deletions(-)
diffs (39 lines):
diff -r 414ad4be7727 -r e3a2a15b4eb9 sao/src/common.js
--- a/sao/src/common.js Wed Apr 08 12:12:54 2026 +0200
+++ b/sao/src/common.js Wed Apr 08 14:31:55 2026 +0200
@@ -2086,6 +2086,7 @@
let [, thousandSeparator] = /^10(.)?000/.exec(format(10000));
let [, decimalSign] = /^0(.)1$/.exec(format(0.1));
return Number(string
+ .replaceAll(' ', '')
.replaceAll(thousandSeparator, '')
.replace(decimalSign, '.'));
}
diff -r 414ad4be7727 -r e3a2a15b4eb9 tryton/tryton/common/domain_parser.py
--- a/tryton/tryton/common/domain_parser.py Wed Apr 08 12:12:54 2026 +0200
+++ b/tryton/tryton/common/domain_parser.py Wed Apr 08 14:31:55 2026 +0200
@@ -231,21 +231,21 @@
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