From 18ec2036411fc259802aa0771713dc6c6c63a09e Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 6 Oct 2011 17:36:22 +0200 Subject: [PATCH] [IMP] use sets for modules to load instead of value-less dicts bzr revid: xmo@openerp.com-20111006153622-i6g5pmk25dal358e --- addons/web/controllers/main.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index c0af09a9ee1..ea56b3d2f94 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -316,25 +316,21 @@ class Session(openerpweb.Controller): @openerpweb.jsonrequest def modules(self, req): # Compute available candidates module - loadable = openerpweb.addons_manifest.keys() + loadable = openerpweb.addons_manifest.iterkeys() loaded = req.config.server_wide_modules candidates = [mod for mod in loadable if mod not in loaded] # Compute active true modules that might be on the web side only - active = [(name,1) for name in candidates if openerpweb.addons_manifest[name].get('active')] - print active + active = set(name for name in candidates + if openerpweb.addons_manifest[name].get('active')) # Retrieve database installed modules - module_obj = req.session.model('ir.module.module') - installed = [(i['name'],1) for i in module_obj.search_read([('state','=','installed'), ('name','in', candidates)])] - print installed + Modules = req.session.model('ir.module.module') + installed = set(module['name'] for module in Modules.search_read( + [('state','=','installed'), ('name','in', candidates)])) # Merge both - merged = dict(installed) - merged.update(active) - print merged - - return merged.keys() + return list(active | installed) @openerpweb.jsonrequest def eval_domain_and_context(self, req, contexts, domains,