base.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from django.contrib.auth.mixins import UserPassesTestMixin
  2. from django.views import View
  3. from sharix_admin.lib import *
  4. class BaseView(UserPassesTestMixin, View):
  5. """
  6. Базовый класс представления админ-панели ShariX.
  7. Предоставляет общие методы и функционал, который
  8. может быть использован в других представлениях админ-панели.
  9. """
  10. def dispatch(self, request, *args, **kwargs):
  11. self.user_groups = self.request.user.groups.values_list('name', flat=True)
  12. #self.avaliable_menu = self.request.user.groups.values_list('name', flat=True)
  13. return super().dispatch(request, *args, **kwargs)
  14. def test_func(self):
  15. return True
  16. def get_context_data(self, **kwargs):
  17. context = super().get_context_data(**kwargs)
  18. context.update({
  19. 'title': self.page_title,
  20. 'current_page': self.page_name,
  21. 'user_groups': self.user_groups,
  22. 'avaliable_pages': gen_avaliable_pages(self.user_groups),
  23. })
  24. return context