diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml
index 7432018fd94..3121bc56e86 100644
--- a/openerp/addons/base/base_update.xml
+++ b/openerp/addons/base/base_update.xml
@@ -354,7 +354,7 @@
- always
+ never
1
diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index 26558900a44..d613cd6fa28 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -286,7 +286,7 @@ class module(osv.osv):
demo = demo or mdemo
return demo
- def upgrade(self, cr, uid, ids, context=None):
+ def apply_upgrade(self, cr, uid, ids, mode='install', 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 = []
@@ -303,7 +303,11 @@ class module(osv.osv):
_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 ids:
+ view_name = 'view_base_module_upgrade_install'
+ else:
+ view_name = 'view_base_module_upgrade'
+ id2 = data_obj._get_id(cr, uid, 'base', view_name)
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
return {
@@ -315,11 +319,12 @@ class module(osv.osv):
'type': 'ir.actions.act_window',
'target': 'new',
'nodestroy':True,
+ 'context': {'modules': ids, 'mode': mode}
}
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)
+ res = self.apply_upgrade(cr, uid, ids, mode='install', context=context)
return res
@@ -342,8 +347,7 @@ class module(osv.osv):
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
+ return self.apply_upgrade(cr, uid, ids, mode='uninstall', context=context)
def button_uninstall_cancel(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state': 'installed'})
@@ -368,7 +372,7 @@ class module(osv.osv):
if dep.state == 'installed':
ids2 = self.search(cr, uid, [('name','=',dep.name)])
to_install.extend(ids2)
- res = self.upgrade(cr, uid, ids, context=context)
+ res = self.apply_upgrade(cr, uid, ids, mode='upgrade', context=context)
return res
def button_upgrade_cancel(self, cr, uid, ids, context=None):
diff --git a/openerp/addons/base/module/wizard/base_module_upgrade.py b/openerp/addons/base/module/wizard/base_module_upgrade.py
index e1ba1644387..d151064891e 100644
--- a/openerp/addons/base/module/wizard/base_module_upgrade.py
+++ b/openerp/addons/base/module/wizard/base_module_upgrade.py
@@ -32,39 +32,6 @@ class base_module_upgrade(osv.osv_memory):
'module_info': fields.text('Modules to update',readonly=True),
}
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- """ Changes the view dynamically
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param context: A standard dictionary
- @return: New arch of view.
- """
- res = super(base_module_upgrade, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
- record_id = context and context.get('active_id', False) or False
- active_model = context.get('active_model')
- if (not record_id) or (not active_model):
- return res
-
- ids = self.get_module_list(cr, uid, context=context)
- if not ids:
- res['arch'] = '''
'''
-
- return res
-
- def get_module_list(self, cr, uid, context=None):
- mod_obj = self.pool.get('ir.module.module')
- ids = mod_obj.search(cr, uid, [
- ('state', 'in', ['to upgrade', 'to remove', 'to install'])])
- return ids
def default_get(self, cr, uid, fields, context=None):
"""
@@ -76,9 +43,15 @@ class base_module_upgrade(osv.osv_memory):
@param context: A standard dictionary for contextual values
"""
mod_obj = self.pool.get('ir.module.module')
- ids = self.get_module_list(cr, uid, context=context)
- res = mod_obj.read(cr, uid, ids, ['name','state'], context)
- return {'module_info': '\n'.join(map(lambda x: x['name']+' : '+x['state'], res))}
+ ids = context.get('modules', [])
+ mode = context.get('mode', 'install')
+ mode_string = {
+ 'install': 'Installed',
+ 'upgrade': 'Upgraded',
+ 'uninstall': 'Uninstalled'
+ }
+ res = mod_obj.read(cr, uid, ids, ['name'], context)
+ return {'module_info': '\n'.join(map(lambda x: x['name']+' : '+ mode_string[mode], res))}
def config(self, cr, uid, ids, context=None):
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..91803f37ec8 100644
--- a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml
+++ b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml
@@ -36,18 +36,40 @@
form
-
+
+ Module Upgrade Install
+ base.module.upgrade
+ form
+
+
+
+
+
+
+
Module Upgrade Install
ir.actions.act_window