[REVERT] r3591: causing problem to install some modules
authorXavier ALT <xal@openerp.com>
Wed, 29 Feb 2012 12:03:35 +0000 (13:03 +0100)
committerXavier ALT <xal@openerp.com>
Wed, 29 Feb 2012 12:03:35 +0000 (13:03 +0100)
bzr revid: xal@openerp.com-20120229120335-8r9qap8m432crv09

bin/addons/base/module/module.py

index 248c3e9..2e27643 100644 (file)
@@ -261,25 +261,21 @@ class module(osv.osv):
                 msg = _('Unable to process module "%s" because an external dependency is not met: %s')
             raise orm.except_orm(_('Error'), msg % (module_name, e.args[0]))
 
-    def state_update(self, cr, uid, ids, newstate, states_to_update, context=None, level=100, res=None):
-        if res is None:
-            res = []
+    def state_update(self, cr, uid, ids, newstate, states_to_update, context=None, level=100):
         if level<1:
             raise orm.except_orm(_('Error'), _('Recursion error in modules dependencies !'))
         demo = False
         for module in self.browse(cr, uid, ids):
             mdemo = False
             for dep in module.dependencies_id:
-                if dep.name not in res:
-                    res.append(dep.name)
-                    if dep.state == 'unknown':
-                        raise orm.except_orm(_('Error'), _("You try to install module '%s' that depends on module '%s'.\nBut the latter module is not available in your system.") % (module.name, dep.name,))
-                    ids2 = self.search(cr, uid, [('name','=',dep.name)])
-                    if dep.state != newstate:
-                        mdemo = self.state_update(cr, uid, ids2, newstate, states_to_update, context, level-1, res=res) or mdemo
-                    else:
-                        od = self.browse(cr, uid, ids2)[0]
-                        mdemo = od.demo or mdemo
+                if dep.state == 'unknown':
+                    raise orm.except_orm(_('Error'), _("You try to install module '%s' that depends on module '%s'.\nBut the latter module is not available in your system.") % (module.name, dep.name,))
+                ids2 = self.search(cr, uid, [('name','=',dep.name)])
+                if dep.state != newstate:
+                    mdemo = self.state_update(cr, uid, ids2, newstate, states_to_update, context, level-1,) or mdemo
+                else:
+                    od = self.browse(cr, uid, ids2)[0]
+                    mdemo = od.demo or mdemo
 
             self.check_external_dependencies(module.name, newstate)
             if not module.dependencies_id: