diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 5ab546cb554..43ece8c0868 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -132,20 +132,29 @@ class ir_ui_menu(osv.osv): return len(result) return result - def _get_full_name(self, cr, uid, ids, name, args, context): - res = {} - for m in self.browse(cr, uid, ids, context=context): - res[m.id] = self._get_one_full_name(m) + def name_get(self, cr, uid, ids, context=None): + res = [] + for id in ids: + elmt = self.browse(cr, uid, id, context=context) + res.append((id, self._get_one_full_name(elmt))) return res - def _get_one_full_name(self, menu, level=6): + def _get_full_name(self, cr, uid, ids, name=None, args=None, context=None): + if context == None: + context = {} + res = {} + for elmt in self.browse(cr, uid, ids, context=context): + res[elmt.id] = self._get_one_full_name(elmt) + return res + + def _get_one_full_name(self, elmt, level=6): if level<=0: return '...' - if menu.parent_id: - parent_path = self._get_one_full_name(menu.parent_id, level-1) + "/" + if elmt.parent_id: + parent_path = self._get_one_full_name(elmt.parent_id, level-1) + "/" else: parent_path = '' - return parent_path + menu.name + return parent_path + elmt.name def create(self, *args, **kwargs): self.clear_cache() @@ -282,7 +291,7 @@ class ir_ui_menu(osv.osv): 'groups_id': fields.many2many('res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid', 'Groups', help="If you have groups, the visibility of this menu will be based on these groups. "\ "If this field is empty, OpenERP will compute visibility based on the related object's read access."), - 'complete_name': fields.function(_get_full_name, + 'complete_name': fields.function(_get_full_name, string='Full Path', type='char', size=128), 'icon': fields.selection(tools.icons, 'Icon', size=64), 'icon_pict': fields.function(_get_icon_pict, type='char', size=32),