From 911861837a023ea1655e00c32fff2ca07de5def0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 25 Aug 2024 10:58:36 +0200 Subject: [PATCH] Group generation of party code at creation --- modules/party/party.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/party/party.py b/modules/party/party.py index f356077191..7eb9b1ea7e 100644 --- a/modules/party/party.py +++ b/modules/party/party.py @@ -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