Bugfix in demo data selection

bzr revid: pinky-8a338062358ee70493a751807ea0c2905eb4da2f
This commit is contained in:
pinky 2006-12-14 15:16:54 +00:00
parent 3ef65d7f93
commit 5b327ad4e2
1 changed files with 9 additions and 19 deletions

View File

@ -114,33 +114,23 @@ class module(osv.osv):
def state_change(self, cr, uid, ids, newstate, context={}, level=50):
if level<1:
raise 'Recursion error in modules dependencies !'
ids_dest = []
demo = True
for module in self.browse(cr, uid, ids):
mdemo = True
for dep in module.dependencies_id:
ids2 = self.search(cr, uid, [('name','=',dep.name)])
for id in ids2:
if (id not in ids_dest):
ids_dest.append(id)
if module.state=='uninstalled':
self.write(cr, uid, [module.id], {'state': newstate})
if ids_dest:
self.state_change(cr, uid, ids_dest, newstate, context, level-1)
for module in self.browse(cr, uid, ids):
if module.state!='installed':
demo=True
for dep in module.dependencies_id:
ids2 = self.search(cr, uid, [('name', '=', dep.name)])
for module2 in self.browse(cr, uid, ids2):
demo = demo and module2.demo
self.write(cr, uid, [module.id], {'demo':demo})
return True
mdemo = mdemo and self.state_change(cr, uid, ids2, newstate, context, level-1)
if not module.dependencies_id:
mdemo = module.demo
self.write(cr, uid, [module.id], {'state': newstate, 'demo':mdemo})
demo = demo and mdemo
return demo
def button_install(self, cr, uid, ids, context={}):
return self.state_change(cr, uid, ids, 'to install', context)
def button_install_cancel(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state': 'uninstalled'})
self.write(cr, uid, ids, {'state': 'uninstalled', 'demo':False})
return True
def button_uninstall(self, cr, uid, ids, context={}):