summaryrefslogtreecommitdiff
path: root/bin/addons/base/module/module.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/addons/base/module/module.py')
-rw-r--r--bin/addons/base/module/module.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py
index 27f390a3bd1..323e032784f 100644
--- a/bin/addons/base/module/module.py
+++ b/bin/addons/base/module/module.py
@@ -591,10 +591,12 @@ class module(osv.osv):
self.write(cr, uid, [id], {'category_id': p_id})
def action_install(self,cr,uid,ids,context=None):
- self.write(cr , uid, ids ,{'state' : 'to install'})
- self.download(cr, uid, ids, context=context)
- for id in ids:
- cr.execute("select m.id as id from ir_module_module_dependency d inner join ir_module_module m on (m.name=d.name) where d.module_id=%d and m.state='uninstalled'",(id,))
+ for module in self.browse(cr, uid, ids, context):
+ if module.state <> 'uninstalled':
+ continue
+ self.write(cr , uid, [module.id] ,{'state' : 'to install'})
+ self.download(cr, uid, [module.id], context=context)
+ cr.execute("select m.id as id from ir_module_module_dependency d inner join ir_module_module m on (m.name=d.name) where d.module_id=%d and m.state='uninstalled'",(module.id,))
dep_ids = map(lambda x:x[0],cr.fetchall())
if len(dep_ids):
self.action_install(cr,uid,dep_ids,context=context)