diff options
| author | Atul Patel (OpenERP) <atp@tinyerp.com> | 2012-06-08 16:37:04 +0530 |
|---|---|---|
| committer | Atul Patel (OpenERP) <atp@tinyerp.com> | 2012-06-08 16:37:04 +0530 |
| commit | e6deac419efe2cb214c8c2a3afb112f366c6b6bf (patch) | |
| tree | 7af054b4938fa578b6bd025b7869d5c50f16d1e1 | |
| parent | 4dcc28c2c9cd0389e6d28766b9e242614094c1a1 (diff) | |
| parent | d3f3387f8fa0daf189b7e87866f2187083f52381 (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.py | 3 | ||||
| -rw-r--r-- | openerp/addons/base/res/res_config.py | 20 |
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 { |
