diff options
| -rw-r--r-- | bin/addons/base/ir/ir_ui_menu.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py index 6b4d98962b4..ec923074573 100644 --- a/bin/addons/base/ir/ir_ui_menu.py +++ b/bin/addons/base/ir/ir_ui_menu.py @@ -69,9 +69,14 @@ class ir_ui_menu(osv.osv): def create_shortcut(self, cr, uid, values, context={}): dataobj = self.pool.get('ir.model.data') - menu_id = dataobj._get_id(cr, uid, 'base', 'menu_administration_shortcut', context) - shortcut_menu_id = int(dataobj.read(cr, uid, menu_id, ['res_id'], context)['res_id']) - action_id = self.pool.get('ir.actions.act_window').create(cr, uid, values, context) + new_context = context.copy() + for key in context: + if key.startswith('default_'): + del new_context[key] + + menu_id = dataobj._get_id(cr, uid, 'base', 'menu_administration_shortcut', new_context) + shortcut_menu_id = int(dataobj.read(cr, uid, menu_id, ['res_id'], new_context)['res_id']) + action_id = self.pool.get('ir.actions.act_window').create(cr, uid, values, new_context) menu_data = {'name':values['name'], 'sequence':10, 'action':'ir.actions.act_window,'+str(action_id), @@ -79,7 +84,7 @@ class ir_ui_menu(osv.osv): 'icon':'STOCK_JUSTIFY_FILL'} menu_id = self.pool.get('ir.ui.menu').create(cr, uid, menu_data) sc_data= {'name':values['name'], 'sequence': 1,'res_id': menu_id } - sc_menu_id = self.pool.get('ir.ui.view_sc').create(cr, uid, sc_data, context) + sc_menu_id = self.pool.get('ir.ui.view_sc').create(cr, uid, sc_data, new_context) user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) key = (cr.dbname, shortcut_menu_id, tuple(user_groups)) |
