summaryrefslogtreecommitdiff
path: root/bin/addons/base/module/module.py
diff options
context:
space:
mode:
authorHarshad Modi <hmo@tinyerp.com>2008-08-26 16:11:13 +0530
committerHarshad Modi <hmo@tinyerp.com>2008-08-26 16:11:13 +0530
commitd8d9b8fc869d7d5c363c8bcd03b481c943c50f6e (patch)
tree707697fec6c3fcead120f8ba24fbcd0d1edafa56 /bin/addons/base/module/module.py
parent4d9214cff511b951f726097ece855d01ff8f7547 (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/module.py')
-rw-r--r--bin/addons/base/module/module.py13
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):