From f201393fa4136263656b7be40ec31c625c7f2728 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 21 Mar 2011 09:43:24 +0100 Subject: [PATCH] [IMP] reformat Menu bzr revid: xmo@openerp.com-20110321084324-0b3it36uhxk44lc8 --- addons/base/controllers/main.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 4b223bdeb9e..bc16076272e 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -118,27 +118,26 @@ class Menu(openerpweb.Controller): @openerpweb.jsonrequest def load(self, req): - m = req.session.model('ir.ui.menu') + Menus = req.session.model('ir.ui.menu') # menus are loaded fully unlike a regular tree view, cause there are # less than 512 items - menu_ids = m.search([]) - menu_items = m.read(menu_ids, ['name', 'sequence', 'parent_id']) + menu_ids = Menus.search([]) + menu_items = Menus.read(menu_ids, ['name', 'sequence', 'parent_id']) menu_root = {'id': False, 'name': 'root', 'parent_id': [-1, '']} menu_items.append(menu_root) + # make a tree using parent_id - for i in menu_items: - i['children'] = [] - d = dict([(i["id"], i) for i in menu_items]) - for i in menu_items: - if not i['parent_id']: - pid = False - else: - pid = i['parent_id'][0] - if pid in d: - d[pid]['children'].append(i) + menu_items_map = dict((menu_item["id"], menu_item) for menu_item in menu_items) + for menu_item in menu_items: + if not menu_item['parent_id']: continue + parent = menu_item['parent_id'][0] + if parent in menu_items_map: + menu_items_map[parent].set_default('children', []).append(menu_item) + # sort by sequence a tree using parent_id - for i in menu_items: - i['children'].sort(key=lambda x:x["sequence"]) + for menu_item in menu_items: + menu_item.set_default('children', []).sort( + key=lambda x:x["sequence"]) return {'data': menu_root}