From fa872d9a047171c64adbdb91710c346edd7e7553 Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Sun, 13 Nov 2016 02:40:25 +0100 Subject: [PATCH] Create full menus instead of sparse menus --- mixins/menuitemmixin.py | 48 +++++++++++++---------------------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/mixins/menuitemmixin.py b/mixins/menuitemmixin.py index f429a44..c8068d5 100644 --- a/mixins/menuitemmixin.py +++ b/mixins/menuitemmixin.py @@ -22,7 +22,7 @@ class MenuItemMixin(MessageMixin): 'url' : self.url}] elif message['type'] == 'menu_add_item': - + label = message['label'] if label in self.menu_items.keys(): print '[Warn] Depulicate menu item label: %s in %s' % (label, self.menu_label) @@ -36,48 +36,30 @@ class MenuItemMixin(MessageMixin): return other_messages - def get_menu_path(self): - path = [self.menu_label] - while self.menu_items[path[0]]['parent'] != None: - path = [self.menu_items[path[0]]['parent']] + path - - return path - - def get_menu_level(self, parent): - return filter(lambda x: x['parent'] == parent, self.menu_items.values()) + level = filter(lambda x: x['parent'] == parent, self.menu_items.values()) + return sorted(level, key=lambda x: x['label']) - def generate_levels(self, path): - level = path[0] - next_level = None - if len(path) > 1: - next_level = path[1] + def generate_levels(self, parent): + level = self.get_menu_level(parent) - res = '\n' return res + def generate_menu(self): - - path = self.get_menu_path() - - return self.generate_levels([None] + path) + return self.generate_levels(None) def get_context(self):