diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/menus.py | 6 | ||||
| -rw-r--r-- | ishtar_common/urls.py | 4 | ||||
| -rw-r--r-- | ishtar_common/views.py | 18 | 
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, | 
