base.py 1.0 KB

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