From d8d9b8fc869d7d5c363c8bcd03b481c943c50f6e Mon Sep 17 00:00:00 2001 From: Harshad Modi Date: Tue, 26 Aug 2008 16:11:13 +0530 Subject: on module model, made new function for install module with dependency. bzr revid: hmo@tinyerp.com-20080826104113-pnnxx93osl7hr6d1 --- bin/addons/base/module/module.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'bin/addons/base/module/module.py') diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py index fdd8af2d488..ceb454d40fa 100644 --- a/bin/addons/base/module/module.py +++ b/bin/addons/base/module/module.py @@ -461,14 +461,14 @@ class module(osv.osv): match = re.search('-([a-zA-Z0-9\._-]+)(\.zip)', mod.url, re.I) version = '0' if match: - version = match.group(1) + version = match.group(1) if vercmp(mod.installed_version or '0', version) >= 0: continue res.append(mod.url) if not download: continue zipfile = urllib.urlopen(mod.url).read() - fname = addons.get_module_path(mod.name+'.zip') + fname = addons.get_module_path(mod.name+'.zip') try: fp = file(fname, 'wb') fp.write(zipfile) @@ -516,6 +516,15 @@ class module(osv.osv): p_id = c_id categs = categs[1:] 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,)) + dep_ids = map(lambda x:x[0],cr.fetchall()) + if len(dep_ids): + self.action_install(cr,uid,dep_ids,context=context) module() class module_dependency(osv.osv): -- cgit v1.2.3