diff options
| author | Harshad Modi <hmo@tinyerp.com> | 2008-08-26 16:11:13 +0530 |
|---|---|---|
| committer | Harshad Modi <hmo@tinyerp.com> | 2008-08-26 16:11:13 +0530 |
| commit | d8d9b8fc869d7d5c363c8bcd03b481c943c50f6e (patch) | |
| tree | 707697fec6c3fcead120f8ba24fbcd0d1edafa56 /bin/addons/base/module | |
| parent | 4d9214cff511b951f726097ece855d01ff8f7547 (diff) | |
on module model, made new function for install module with dependency.
bzr revid: hmo@tinyerp.com-20080826104113-pnnxx93osl7hr6d1
Diffstat (limited to 'bin/addons/base/module')
| -rw-r--r-- | bin/addons/base/module/module.py | 13 |
1 files changed, 11 insertions, 2 deletions
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): |
