context.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from django.urls import resolve
  2. from django.utils.translation import gettext_lazy as _
  3. menu = [
  4. {'title':_('Главная'), 'link':'home', 'sel':'house'},
  5. {'title':_('Заявки'), 'link':'tickets', 'sel':'tikets'},
  6. {'title':_('Партнеры'), 'link':'partners', 'sel':'people',
  7. 'roles':['METASERVICE-ADMIN']},
  8. {'title':_('Управление правами'),'link':'user_information', 'sel':'hdd-network'},
  9. {'title':_('Услуги сервиса'), 'link':'service_type', 'sel':'briefcase',
  10. 'roles':['METASERVICE-ADMIN']},
  11. {'title':_('История заказов'), 'link':'trans','sel':'clock-history'},
  12. {'title':_('Информация о сервисе'), 'link':'service_information/add/', 'sel':'person',
  13. 'roles':['METASERVICE-ADMIN']},
  14. {'title':_('Оплата'), 'link':'test-page', 'sel':'credit-card'},
  15. ]
  16. def get_context(request, page_context) -> dict:
  17. # Получаем роли текущего пользователя
  18. user_roles = set(group.name for group in request.user.groups.all())
  19. is_superuser = request.user.is_superuser
  20. menu_items = []
  21. # Добавляем только те страницы к которым должен быть доступ
  22. for item in menu:
  23. if not item.get('roles') or is_superuser or set(item['roles']) & set(user_roles):
  24. menu_items.append(item)
  25. base_context = {
  26. "title":page_context['title'],
  27. 'url_path':resolve(request.path_info).url_name,
  28. 'menu':menu_items
  29. }
  30. context = dict(list(base_context.items()) + list(page_context.items()))
  31. return context