From b468d3e762dd4b4ea159ae9da4a6e16fb8992a69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 25 Aug 2024 10:59:20 +0200 Subject: [PATCH] Group generation of product category code at creation --- modules/product/category.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/product/category.py b/modules/product/category.py index 7c4406b82d..ce4be65e37 100644 --- a/modules/product/category.py +++ b/modules/product/category.py @@ -91,20 +91,21 @@ class Category(tree(separator=' / '), ModelSQL, ModelView): } @classmethod - def _new_code(cls): + def _code_sequence(cls): pool = Pool() Configuration = pool.get('product.configuration') config = Configuration(1) - sequence = config.category_sequence - if sequence: - return sequence.get() + return config.category_sequence @classmethod def create(cls, vlist): vlist = [v.copy() for v in vlist] - for values in vlist: - if not values.get('code'): - values['code'] = cls._new_code() + missing_code = [v for v in vlist if not v.get('code')] + 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().create(vlist) @classmethod