details: https://code.tryton.org/tryton/commit/6b1ea14564da
branch: 8.0
user: Alen Sugimoto <[email protected]>
date: Sun May 24 08:31:26 2026 -0700
description:
Fix falsy negative currency formatting selection
Closes #14860
(grafted from 5e06983974daed2cb0e372a1b3a5f2cd107df751)
diffstat:
trytond/trytond/ir/lang.py | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diffs (43 lines):
diff -r c5c3d272e01f -r 6b1ea14564da trytond/trytond/ir/lang.py
--- a/trytond/trytond/ir/lang.py Tue Jun 02 19:09:24 2026 +0200
+++ b/trytond/trytond/ir/lang.py Sun May 24 08:31:26 2026 -0700
@@ -4,6 +4,7 @@
import datetime
from ast import literal_eval
from decimal import Decimal
+from functools import partial
from itertools import takewhile
from locale import CHAR_MAX
@@ -570,6 +571,7 @@
Formats val according to the currency settings in lang.
"""
# Code from currency in locale.py
+ conv = partial(getattr, self)
# check for illegal values
if digits is None:
@@ -586,10 +588,8 @@
if symbol:
smb = currency.symbol
- precedes = (val < 0 and self.n_cs_precedes
- or self.p_cs_precedes)
- separated = (val < 0 and self.n_sep_by_space
- or self.p_sep_by_space)
+ precedes = conv(val < 0 and 'n_cs_precedes' or 'p_cs_precedes')
+ separated = conv(val < 0 and 'n_sep_by_space' or 'p_sep_by_space')
if not smb and hasattr(currency, 'code'):
smb = currency.code
separated = True
@@ -599,8 +599,8 @@
else:
s = s + (separated and ' ' or '') + smb
- sign_pos = val < 0 and self.n_sign_posn or self.p_sign_posn
- sign = val < 0 and self.negative_sign or self.positive_sign
+ sign_pos = conv(val < 0 and 'n_sign_posn' or 'p_sign_posn')
+ sign = conv(val < 0 and 'negative_sign' or 'positive_sign')
if sign_pos == 0:
s = '(' + s + ')'