details: https://code.tryton.org/tryton/commit/8d359573d99e
branch: default
user: Cédric Krier <[email protected]>
date: Fri Oct 17 14:08:46 2025 +0200
description:
Make the number of bank accounts required
The number is the record name so it must always be filled.
Closes #14297
diffstat:
modules/bank/bank.py | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
diffs (35 lines):
diff -r ec77abb45395 -r 8d359573d99e modules/bank/bank.py
--- a/modules/bank/bank.py Fri Oct 17 17:27:27 2025 +0200
+++ b/modules/bank/bank.py Fri Oct 17 14:08:46 2025 +0200
@@ -199,8 +199,12 @@
('iban', 'IBAN'),
('other', 'Other'),
], 'Type', required=True)
- number = fields.Char('Number')
- number_compact = fields.Char('Number Compact', readonly=True)
+ number = fields.Char("Number", required=True)
+ number_compact = fields.Char(
+ "Number Compact", readonly=True,
+ states={
+ 'required': Eval('type').in_(['iban']),
+ })
@classmethod
def __setup__(cls):
@@ -261,6 +265,16 @@
return (iban.compact(self.number) if self.type == 'iban'
else self.number)
+ @classmethod
+ def preprocess_values(cls, mode, values):
+ values = super().preprocess_values(mode, values)
+ if mode == 'create':
+ if (values.get('type') == 'iban'
+ and (number := values.get('number'))):
+ values['number'] = iban.format(number)
+ values['number_compact'] = iban.compact(number)
+ return values
+
def compute_fields(self, field_names=None):
values = super().compute_fields(field_names=field_names)
if ((not field_names or {'type', 'number'} & field_names)