Make the number of bank accounts required

The number is the record name so it must always be filled.

Closes #14297
This commit is contained in:
Cédric Krier
2025-10-17 14:08:46 +02:00
parent b84bec1dcf
commit 6e1d98779a
+16 -2
View File
@@ -199,8 +199,12 @@ class AccountNumber(DeactivableMixin, sequence_ordered(), ModelSQL, ModelView):
('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 @@ class AccountNumber(DeactivableMixin, sequence_ordered(), ModelSQL, ModelView):
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)