From 0f85e6d97dc4bab5bc135d65240fdee5ce712ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 16 Mar 2023 10:02:15 +0100 Subject: [PATCH] Use classmethod to compute state of module dependency --- trytond/trytond/ir/module.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/trytond/trytond/ir/module.py b/trytond/trytond/ir/module.py index 250dfd2bdc..9d2108e0c6 100644 --- a/trytond/trytond/ir/module.py +++ b/trytond/trytond/ir/module.py @@ -342,16 +342,18 @@ class ModuleDependency(ModelSQL, ModelView): super(ModuleDependency, cls).__register__(module_name) - def get_state(self, name): + @classmethod + def get_state(cls, dependencies, name): pool = Pool() Module = pool.get('ir.module') - dependencies = Module.search([ - ('name', '=', self.name), - ]) - if dependencies: - return dependencies[0].state - else: - return 'unknown' + modules = [] + names = [d.name for d in dependencies] + for sub_names in grouped_slice(names): + modules.extend(Module.search([ + ('name', 'in', list(sub_names)), + ])) + name2state = {m.name: m.state for m in modules} + return {d.id: name2state.get(d.name, 'unknown') for d in dependencies} class ModuleConfigWizardItem(sequence_ordered(), ModelSQL, ModelView):