summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/menus.py6
-rw-r--r--ishtar_common/urls.py4
-rw-r--r--ishtar_common/views.py18
3 files changed, 17 insertions, 11 deletions
diff --git a/ishtar_common/menus.py b/ishtar_common/menus.py
index 99348fde1..75a562791 100644
--- a/ishtar_common/menus.py
+++ b/ishtar_common/menus.py
@@ -111,7 +111,8 @@ class Menu:
"""
if not user_id and self.user:
user_id = self.user.pk
- else:
+
+ if user_id:
try:
self.user = User.objects.get(pk=user_id)
except User.DoesNotExist:
@@ -225,6 +226,3 @@ class Menu:
self.current_sections.append([section.label, section_url,
bool(subsections)])
-
-menu = Menu(None)
-menu.init()
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 4a61a5fb8..90784ec96 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.py
@@ -22,7 +22,7 @@ from django.conf.urls import include, url
from django.conf.urls.static import static
from django.views.generic import TemplateView
-from menus import menu
+from menus import Menu
from ishtar_common import views
from ishtar_common.wizards import check_rights
@@ -125,6 +125,8 @@ urlpatterns = [
url(r'^profile/', views.ProfileEdit.as_view(), name='profile'),
]
+menu = Menu(None)
+menu.init()
actions = []
for section in menu.childs:
for menu_item in section.childs:
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 352a3d6f1..5266f6cd7 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -56,7 +56,7 @@ from django.views.generic.edit import CreateView, DeleteView, FormView
from xhtml2odt import xhtml2odt
-from menus import menu
+from menus import Menu
from archaeological_files.models import File
from archaeological_operations.models import Operation
@@ -465,15 +465,21 @@ def update_current_item(request, item_type=None, pk=None):
return HttpResponse('ok')
+MAIN_MENU = None
+
+
def check_permission(request, action_slug, obj_id=None):
- if action_slug not in menu.items:
+ if not MAIN_MENU:
+ MAIN_MENU = Menu(None)
+ MAIN_MENU.init()
+ if action_slug not in MAIN_MENU.items:
# TODO
return True
if obj_id:
- return menu.items[action_slug].is_available(request.user, obj_id,
- session=request.session)
- return menu.items[action_slug].can_be_available(request.user,
- session=request.session)
+ return MAIN_MENU.items[action_slug].is_available(
+ request.user, obj_id, session=request.session)
+ return MAIN_MENU.items[action_slug].can_be_available(
+ request.user, session=request.session)
def autocomplete_person_permissive(request, person_types=None,