ticket_list_list.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from django.contrib import messages
  2. from django.contrib.auth.mixins import LoginRequiredMixin
  3. from django.views.generic import ListView
  4. from tickets.forms import TicketListForm
  5. from tickets.models import TicketList
  6. class TicketListView(LoginRequiredMixin, ListView):
  7. model = TicketList
  8. template_name = "tickets/ticket_list_list.html"
  9. context_object_name = "ticket_lists"
  10. def get_queryset(self):
  11. user = self.request.user
  12. user_groups_ids = user.groups.all().values_list("pk", flat=True)
  13. ticket_lists = TicketList.objects.select_related("group").order_by("group__name", "name")
  14. if user_groups_ids:
  15. ticket_lists = ticket_lists.filter(group__id__in=user_groups_ids)
  16. else:
  17. messages.warning(
  18. self.request,
  19. "You do not yet belong to any groups. Ask your administrator to add you to one."
  20. )
  21. ticket_lists = TicketList.objects.none()
  22. return ticket_lists
  23. def get_context_data(self, **kwargs):
  24. context = super().get_context_data(**kwargs)
  25. context["form"] = TicketListForm(self.request.user)
  26. return context