1234567891011121314151617181920212223242526272829303132 |
- from django.contrib import messages
- from django.contrib.auth.mixins import LoginRequiredMixin
- from django.db.models import Count, Sum, Q
- from django.views.generic import ListView
- from tickets.models import TicketList
- from tickets.forms import TicketListForm
- class TicketListView(LoginRequiredMixin, ListView):
- model = TicketList
- template_name = "tickets/ticket_list_list.html"
- context_object_name = "ticket_lists"
- def get_queryset(self):
- user = self.request.user
- user_groups_ids = user.groups.all().values_list("pk", flat=True)
- ticket_lists = TicketList.objects.select_related("group").order_by("group__name", "name")
-
- if not user.is_superuser:
- if user_groups_ids:
- ticket_lists = ticket_lists.filter(group__id__in=user_groups_ids)
- else:
- messages.warning(self.request, "You do not yet belong to any groups. Ask your administrator to add you to one.")
- ticket_lists = TicketList.objects.none()
- return ticket_lists
-
- def get_context_data(self, **kwargs):
- context = super().get_context_data(**kwargs)
- context["form"] = TicketListForm(self.request.user)
- return context
|