From 23ec2a738311826639c42d2896d9525e5d34a704 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 17 Apr 2013 15:23:39 +0200 Subject: [PATCH 1/2] [IMP] ir_ui_menu: trunk to 7.0 dynamic counters bzr revid: chm@openerp.com-20130417132339-1d1xkb1lriuvkx9m --- openerp/addons/base/ir/ir_ui_menu.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 5da85c43577..b8786810a12 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -299,7 +299,24 @@ class ir_ui_menu(osv.osv): the action domain """ res = {} + menu_ids = [] for menu in self.browse(cr, uid, ids, context=context): + menu_ids.append(menu.id) + ctx = None + if menu.action and menu.action.type in ('ir.actions.act_window', 'ir.actions.client') and menu.action.context: + ctx = eval(menu.action.context, context) or None + menu_ref = ctx and ctx.get('needaction_menu_ref') + if menu_ref: + if not isinstance(menu_ref, list): + menu_ref = [menu_ref] + model_data_obj = self.pool.get('ir.model.data') + for menu_data in menu_ref: + model, id = model_data_obj.get_object_reference(cr, uid, menu_data.split('.')[0], menu_data.split('.')[1]) + if (model == 'ir.ui.menu'): + menu_ids.append(id) + menu_ids = list(set(menu_ids)) + + for menu in self.browse(cr, uid, menu_ids, context=context): res[menu.id] = { 'needaction_enabled': False, 'needaction_counter': False, From 5f76e998a52b93f0ba1a8bf42fca42815a51bdab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 25 Apr 2013 16:28:01 +0200 Subject: [PATCH 2/2] [CLEAN] cleaning: set(list), use directly a set bzr revid: tde@openerp.com-20130425142801-gwk9xsnhb3r20jji --- openerp/addons/base/ir/ir_ui_menu.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index b8786810a12..647f714fd81 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -299,9 +299,9 @@ class ir_ui_menu(osv.osv): the action domain """ res = {} - menu_ids = [] + menu_ids = set() for menu in self.browse(cr, uid, ids, context=context): - menu_ids.append(menu.id) + menu_ids.add(menu.id) ctx = None if menu.action and menu.action.type in ('ir.actions.act_window', 'ir.actions.client') and menu.action.context: ctx = eval(menu.action.context, context) or None @@ -313,8 +313,8 @@ class ir_ui_menu(osv.osv): for menu_data in menu_ref: model, id = model_data_obj.get_object_reference(cr, uid, menu_data.split('.')[0], menu_data.split('.')[1]) if (model == 'ir.ui.menu'): - menu_ids.append(id) - menu_ids = list(set(menu_ids)) + menu_ids.add(id) + menu_ids = list(menu_ids) for menu in self.browse(cr, uid, menu_ids, context=context): res[menu.id] = {