diff --git a/ticketsystem/templates/ticketsystem/index.html b/ticketsystem/templates/ticketsystem/index.html index 16075fa..8895610 100644 --- a/ticketsystem/templates/ticketsystem/index.html +++ b/ticketsystem/templates/ticketsystem/index.html @@ -26,7 +26,7 @@
-
+
@@ -46,6 +46,7 @@ name="assigned_to" value="{{ request.GET.assigned_to }}"> {% endif %} + {% if request.GET.course %}{% endif %} {% if search_query %}{% endif %}
@@ -54,18 +55,44 @@ {% if request.GET.assigned_to == user.id|stringformat:'s' %} - 👤 Meine Tickets ✓ {% else %} - 👤 Meine Tickets {% endif %}
+ +
+
+ + + + {% if selected_status %}{% endif %} + {% if selected_course %}{% endif %} + {% if request.GET.assigned_to %} + + {% endif %} + {% if search_query %}{% endif %} +
+
@@ -77,6 +104,7 @@ placeholder="Titel oder Beschreibung durchsuchen..." class="flex-1 h-10 px-3 border border-gray-300 rounded-l shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"> {% if selected_status %}{% endif %} + {% if selected_course %}{% endif %} {% if request.GET.assigned_to %} × {% endif %} + {% if selected_course %} + + Kurs: + {% for course in courses %} + {% if course.id|stringformat:'s' == selected_course %}{{ course.code }}{% endif %} + {% endfor %} + × + + {% endif %} Alle Filter entfernen
@@ -131,6 +169,7 @@ # Titel + Kurs Status Fehlerart Zugewiesen an @@ -147,6 +186,11 @@ {{ ticket.title }} + + + {{ ticket.course.code }} + + {% if ticket.status == 'new' %} {{ ticket.get_status_display }} @@ -188,11 +232,11 @@
Seite {{ page_obj.number }} von {{ page_obj.paginator.num_pages }}
{% if page_obj.has_previous %} - Zurück {% endif %} {% if page_obj.has_next %} - Weiter {% endif %}
diff --git a/ticketsystem/views.py b/ticketsystem/views.py index 1dcd050..8e78202 100644 --- a/ticketsystem/views.py +++ b/ticketsystem/views.py @@ -16,7 +16,7 @@ from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer from reportlab.lib.enums import TA_LEFT, TA_CENTER -from .models import Ticket, TicketHistory, FAQ +from .models import Ticket, TicketHistory, FAQ, Course class HomeView(TemplateView): @@ -47,23 +47,27 @@ class TicketListView(ListView): status = self.request.GET.get("status") assigned_to = self.request.GET.get("assigned_to") query = self.request.GET.get("q") + course = self.request.GET.get("course") if status: queryset = queryset.filter(status=status) if assigned_to: queryset = queryset.filter(assigned_to_id=assigned_to) + if course: # NEU + queryset = queryset.filter(course_id=course) if query: queryset = queryset.filter( Q(title__icontains=query) | Q(description__icontains=query) ) - return queryset def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["selected_status"] = self.request.GET.get("status", "") + context["selected_course"] = self.request.GET.get("course", "") context["search_query"] = self.request.GET.get("q", "") context["status_choices"] = Ticket.STATUS_CHOICES + context["courses"] = Course.objects.filter(is_active=True) return context