summaryrefslogtreecommitdiff
path: root/ishtar_common/menus.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-12-08 02:26:03 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-12-08 02:26:03 +0100
commit544cb74d6d49deb73ace116df02716adc5b6a464 (patch)
tree5ea46df7c455810a61d3e278a80d6259c645a286 /ishtar_common/menus.py
parent35a972ad5de7aa8191da0463457255b868258ec9 (diff)
downloadIshtar-544cb74d6d49deb73ace116df02716adc5b6a464.tar.bz2
Ishtar-544cb74d6d49deb73ace116df02716adc5b6a464.zip
Use cache for faster rights checking
Diffstat (limited to 'ishtar_common/menus.py')
-rw-r--r--ishtar_common/menus.py17
1 files changed, 9 insertions, 8 deletions
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