summaryrefslogtreecommitdiff
path: root/addons/base_setup/__init__.py
diff options
context:
space:
mode:
authorXavier Morel <xmo@tinyerp.com>2010-01-22 11:14:27 +0100
committerXavier Morel <xmo@tinyerp.com>2010-01-22 11:14:27 +0100
commita27c08272ac0f2238ee6b7b80a2bd05af8d30723 (patch)
tree73a067418299f86fcaf2b07dca88273e6541474d /addons/base_setup/__init__.py
parentf4b8f2776bfac105b2f02e5f56c7d352c22d50c0 (diff)
[imp] base_config: replace last remaining step of wizard by regular osv_memory-based view
bzr revid: xmo@tinyerp.com-20100122101427-ukvw32usb2zfkjn4
Diffstat (limited to 'addons/base_setup/__init__.py')
-rw-r--r--addons/base_setup/__init__.py62
1 files changed, 62 insertions, 0 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: