summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtul Patel (OpenERP) <atp@tinyerp.com>2012-06-08 16:37:04 +0530
committerAtul Patel (OpenERP) <atp@tinyerp.com>2012-06-08 16:37:04 +0530
commite6deac419efe2cb214c8c2a3afb112f366c6b6bf (patch)
tree7af054b4938fa578b6bd025b7869d5c50f16d1e1
parent4dcc28c2c9cd0389e6d28766b9e242614094c1a1 (diff)
parentd3f3387f8fa0daf189b7e87866f2187083f52381 (diff)
[MERGE]: Merged with lp:~openerp-dev/openobject-server/trunk-config-wizard-clean-tta
bzr revid: atp@tinyerp.com-20120608110704-y3efta63xcbzy0py
-rw-r--r--openerp/addons/base/ir/ir_ui_menu.py3
-rw-r--r--openerp/addons/base/res/res_config.py20
2 files changed, 17 insertions, 6 deletions
diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py
index 15d250a7489..09029cedaef 100644
--- a/openerp/addons/base/ir/ir_ui_menu.py
+++ b/openerp/addons/base/ir/ir_ui_menu.py
@@ -261,7 +261,8 @@ class ir_ui_menu(osv.osv):
res = {}
for menu in self.browse(cr, uid, ids, context=context):
res[menu.id] = {}
- if menu.action and menu.action.type == 'ir.actions.act_window' and menu.action.res_model:
+
+ if menu.action and menu.action.type == 'ir.actions.act_window' and menu.action.res_model:
menu_needaction_res = self.pool.get(menu.action.res_model)._get_needaction_info(cr, uid, uid, domain=menu.action.domain, context=context)
else:
menu_needaction_res = [False, 0]
diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py
index f28b023eddd..95cab12ce32 100644
--- a/openerp/addons/base/res/res_config.py
+++ b/openerp/addons/base/res/res_config.py
@@ -500,9 +500,9 @@ class res_config_settings(osv.osv_memory):
# overridden to make fields of installed modules readonly
res = super(res_config_settings, self).fields_get(cr, uid, allfields, context, write_access)
classified = self._get_classified_fields(cr, uid, context)
- for name, module in classified['module']:
- if name in res and module.state in ('installed', 'to install', 'to upgrade'):
- res[name]['readonly'] = True
+ #for name, module in classified['module']:
+ # if name in res and module.state in ('installed', 'to install', 'to upgrade'):
+ # res[name]['readonly'] = False
return res
def execute(self, cr, uid, ids, context=None):
@@ -533,11 +533,21 @@ class res_config_settings(osv.osv_memory):
# module fields: install immediately the selected modules
to_install_ids = []
+ to_uninstall_ids = []
for name, module in classified['module']:
- if config[name] and module.state == 'uninstalled':
- to_install_ids.append(module.id)
+ if config[name]:
+ if module.state == 'uninstalled': to_install_ids.append(module.id)
+ else:
+ if module.state in ['installed','upgrade']: to_uninstall_ids.append(module.id)
if to_install_ids:
ir_module.button_immediate_install(cr, uid, to_install_ids, context)
+ if to_uninstall_ids:
+ # Module unInstallation.
+ dep_ids = ir_module.downstream_dependencies(cr, uid, to_uninstall_ids, context=context)
+ ir_module.module_uninstall(cr, uid, to_uninstall_ids + dep_ids , context)
+ cr.commit()
+ _logger.info('Reloading registry once more after uninstalling modules')
+ pooler.restart_pool(cr.dbname, update_module=True)
# force client-side reload (update user menu and current view)
return {