From 0643970751d46b73a7d1c48a6ef6593e7d43c8bc Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 8 Dec 2015 02:26:03 +0100 Subject: Use cache for faster rights checking --- ishtar_common/menus.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'ishtar_common/menus.py') diff --git a/ishtar_common/menus.py b/ishtar_common/menus.py index 6333a4197..e55b288bf 100644 --- a/ishtar_common/menus.py +++ b/ishtar_common/menus.py @@ -22,10 +22,7 @@ Menus """ from django.conf import settings -from django.utils.translation import ugettext_lazy as _ -from menu_base import SectionItem, MenuItem -import models _extra_menus = [] # collect menu from INSTALLED_APPS @@ -36,8 +33,8 @@ for app in settings.INSTALLED_APPS: _extra_menus += menu.MENU_SECTIONS # sort -__section_items = [menu for order, menu in sorted(_extra_menus, - key=lambda x:x[0])] +__section_items = [mnu for order, mnu in sorted(_extra_menus, + key=lambda x:x[0])] # regroup menus _section_items, __keys = [], [] for section_item in __section_items: @@ -51,22 +48,26 @@ for section_item in __section_items: if child.idx not in childs_idx: section_childs.append(child) + class Menu: childs = _section_items - def __init__(self, user, current_action=None): + + def __init__(self, user, current_action=None, session=None): self.user = user self.initialized = False self.items = {} self.current_action = current_action self.selected_idx = None + self.session = session def init(self): if self.initialized: return self.items = {} for idx, main_menu in enumerate(self.childs): - selected = main_menu.set_items(self.user, self.items, - self.current_action) + selected = main_menu.set_items( + self.user, self.items, + self.current_action, session=self.session) if selected: self.selected_idx = idx self.initialized = True -- cgit v1.2.3