Group generation of party code at creation

This commit is contained in:
Cédric Krier committed 2024-08-25 10:58:36 +02:00
1 parent 2c87de506c
commit 911861837a
1 file changed
+9 -5
+9 -5
View File
@@ -280,21 +280,25 @@ class Party(
return index
@classmethod
def _new_code(cls, **pattern):
def _code_sequence(cls, **pattern):
pool = Pool()
Configuration = pool.get('party.configuration')
config = Configuration(1)
sequence = config.get_multivalue('party_sequence', **pattern)
if sequence:
return sequence.get()
return config.get_multivalue('party_sequence', **pattern)
@classmethod
def create(cls, vlist):
vlist = [x.copy() for x in vlist]
missing_code = []
for values in vlist:
if not values.get('code'):
values['code'] = cls._new_code()
missing_code.append(values)
values.setdefault('addresses', None)
if missing_code:
if sequence := cls._code_sequence():
for values, code in zip(
missing_code, sequence.get_many(len(missing_code))):
values['code'] = code
return super(Party, cls).create(vlist)
@classmethod