diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index 26558900a44..2e276433e63 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -200,7 +200,6 @@ class module(osv.osv):
def _name_uniq_msg(self, cr, uid, ids, context=None):
return _('The name of the module must be unique !')
-
def _certificate_uniq_msg(self, cr, uid, ids, context=None):
return _('The certificate ID of the module must be unique !')
@@ -286,42 +285,8 @@ class module(osv.osv):
demo = demo or mdemo
return demo
- def upgrade(self, cr, uid, ids, context=None):
- mod_obj = self.pool.get('ir.module.module')
- ids = mod_obj.search(cr, uid, [('state', 'in', ['to upgrade', 'to remove', 'to install'])])
- unmet_packages = []
- mod_dep_obj = self.pool.get('ir.module.module.dependency')
- for mod in mod_obj.browse(cr, uid, ids, context=context):
- depends_mod_ids = mod_dep_obj.search(cr, uid, [('module_id', '=', mod.id)], context=context)
- for dep_mod in mod_dep_obj.browse(cr, uid, depends_mod_ids):
- if dep_mod.state in ('unknown','uninstalled'):
- unmet_packages.append(dep_mod.name)
- if len(unmet_packages):
- raise osv.except_osv(_('Unmet dependency !'), _('Following modules are not installed or unknown: %s') % ('\n\n' + '\n'.join(unmet_packages)))
- mod_obj.download(cr, uid, ids, context=context)
- cr.commit()
- _db, pool = pooler.restart_pool(cr.dbname, update_module=True)
-
- data_obj = self.pool.get('ir.model.data')
- id2 = data_obj._get_id(cr, uid, 'base', 'view_base_module_upgrade_install')
- if id2:
- id2 = data_obj.browse(cr, uid, id2, context=context).res_id
- return {
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'base.module.upgrade',
- 'views': [(id2, 'form')],
- 'view_id': False,
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- 'nodestroy':True,
- }
-
def button_install(self, cr, uid, ids, context=None):
- self.state_update(cr, uid, ids, 'to install', ['uninstalled'], context)
- res = self.upgrade(cr, uid, ids, context=context)
- return res
-
+ return self.state_update(cr, uid, ids, 'to install', ['uninstalled'], context)
def button_install_cancel(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state': 'uninstalled', 'demo':False})
@@ -340,41 +305,49 @@ class module(osv.osv):
res = cr.fetchall()
if res:
raise orm.except_orm(_('Error'), _('Some installed modules depend on the module you plan to Uninstall :\n %s') % '\n'.join(map(lambda x: '\t%s: %s' % (x[0], x[1]), res)))
-
self.write(cr, uid, ids, {'state': 'to remove'})
- self.upgrade(cr, uid, ids, context=context)
return True
def button_uninstall_cancel(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state': 'installed'})
return True
-
def button_upgrade(self, cr, uid, ids, context=None):
depobj = self.pool.get('ir.module.module.dependency')
todo = self.browse(cr, uid, ids, context=context)
self.update_list(cr, uid)
+
i = 0
while i
-
+
diff --git a/openerp/addons/base/module/wizard/base_module_upgrade.py b/openerp/addons/base/module/wizard/base_module_upgrade.py
index e1ba1644387..ca82cfb20d2 100644
--- a/openerp/addons/base/module/wizard/base_module_upgrade.py
+++ b/openerp/addons/base/module/wizard/base_module_upgrade.py
@@ -19,6 +19,7 @@
#
##############################################################################
+import pooler
from osv import osv, fields
from tools.translate import _
@@ -80,6 +81,36 @@ class base_module_upgrade(osv.osv_memory):
res = mod_obj.read(cr, uid, ids, ['name','state'], context)
return {'module_info': '\n'.join(map(lambda x: x['name']+' : '+x['state'], res))}
+ def upgrade_module(self, cr, uid, ids, context=None):
+ mod_obj = self.pool.get('ir.module.module')
+ ids = mod_obj.search(cr, uid, [('state', 'in', ['to upgrade', 'to remove', 'to install'])])
+ unmet_packages = []
+ mod_dep_obj = self.pool.get('ir.module.module.dependency')
+ for mod in mod_obj.browse(cr, uid, ids):
+ depends_mod_ids = mod_dep_obj.search(cr, uid, [('module_id', '=', mod.id)])
+ for dep_mod in mod_dep_obj.browse(cr, uid, depends_mod_ids):
+ if dep_mod.state in ('unknown','uninstalled'):
+ unmet_packages.append(dep_mod.name)
+ if len(unmet_packages):
+ raise osv.except_osv(_('Unmet dependency !'), _('Following modules are not installed or unknown: %s') % ('\n\n' + '\n'.join(unmet_packages)))
+ mod_obj.download(cr, uid, ids, context=context)
+ cr.commit()
+ _db, pool = pooler.restart_pool(cr.dbname, update_module=True)
+
+ data_obj = pool.get('ir.model.data')
+ id2 = data_obj._get_id(cr, uid, 'base', 'view_base_module_upgrade_install')
+ if id2:
+ id2 = data_obj.browse(cr, uid, id2, context=context).res_id
+
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'base.module.upgrade',
+ 'views': [(id2, 'form')],
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ }
def config(self, cr, uid, ids, context=None):
return self.pool.get('res.config').next(cr, uid, [], context=context)
diff --git a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml
index 146fafed12f..b8bb282d6ed 100644
--- a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml
+++ b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml
@@ -30,6 +30,18 @@
new
+
+
+
+
Module Upgrade Install
base.module.upgrade
@@ -59,4 +71,4 @@
-
+
\ No newline at end of file