From a27c08272ac0f2238ee6b7b80a2bd05af8d30723 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 22 Jan 2010 11:14:27 +0100 Subject: [PATCH] [imp] base_config: replace last remaining step of wizard by regular osv_memory-based view bzr revid: xmo@tinyerp.com-20100122101427-ukvw32usb2zfkjn4 --- addons/base_setup/__init__.py | 62 +++++++++++++++++++++++++++ addons/base_setup/base_setup_data.xml | 47 +++++++++++++++----- addons/base_setup/base_setup_demo.xml | 2 +- 3 files changed, 99 insertions(+), 12 deletions(-) diff --git a/addons/base_setup/__init__.py b/addons/base_setup/__init__.py index 4c0b9e0b934..405742d5a34 100644 --- a/addons/base_setup/__init__.py +++ b/addons/base_setup/__init__.py @@ -23,5 +23,67 @@ import installer import todo import wizard +from osv import osv +import netsvc + +class base_setup_config_choice(osv.osv_memory): + """ + """ + _name = 'base.setup.config' + logger = netsvc.Logger() + + def set_default_menu(self, cr, uid, menu, context=None): + users = self.pool.get('res_users') + users.write(cr, uid, + users.search(cr, uid, + [('action_id','=','Setup')], + context=context), + {'action_id': menu.id}, + context=context) + users.write(cr, uid, + users.search(cr, uid, + [('menu_id','=','Setup')], + context=context), + {'menu_id': menu.id}, + context=context) + + def get_default_menu(self, cr, uid, context=None): + actions = self.pool.get('ir.actions.act_window') + + current_menu_id = actions.search(cr, uid, [('name','=','Menu')], + context=context) + assert len(current_menu_id) == 1,\ + 'A given user should only have menu item' + return actions.browse(cr, uid, current_menu_id[0], context=context) + + def menu(self, cr, uid, ids, context=None): + menu = self.get_default_menu(cr, uid, context=context) + self.set_default_menu(cr, uid, menu, context=context) + + if menu.view_id.id: + view_id = (menu.view_id.id, menu.view_id.name) + else: + view_id = False + + return { + 'name': menu.name, + 'type': menu.type, + 'view_id': view_id, + 'domain': menu.domain, + 'res_users': menu.res_model, + 'src_model': menu.src_model, + 'view_type': menu.view_type, + 'view_mode': menu.view_mode, + 'views': menu.views, + } + def config(self, cr, uid, ids, context=None): + menu = self.get_default_menu(cr, uid, context=context) + self.set_default_menu(cr, uid, menu, context=context) + + return self.pool.get('res.config').next(cr, uid, [], context=context) + +base_setup_config_choice() + + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_setup/base_setup_data.xml b/addons/base_setup/base_setup_data.xml index 16639396d44..a28c7744158 100644 --- a/addons/base_setup/base_setup_data.xml +++ b/addons/base_setup/base_setup_data.xml @@ -1,16 +1,41 @@ - + + + Setup + base.setup.config + form + +
+ + + + + + +