From 6306ffd4321c2b246f674fc2a4a136e21043e8dc Mon Sep 17 00:00:00 2001 From: Paul Date: Mon, 19 May 2025 21:08:11 +0200 Subject: [PATCH] feat: added text search for title and description --- ticketsystem/templates/ticketsystem/index.html | 12 ++++++++++++ ticketsystem/views.py | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ticketsystem/templates/ticketsystem/index.html b/ticketsystem/templates/ticketsystem/index.html index 5461621..38711a3 100644 --- a/ticketsystem/templates/ticketsystem/index.html +++ b/ticketsystem/templates/ticketsystem/index.html @@ -59,6 +59,18 @@ +
+ + {% if selected_status %} + + {% endif %} + +
+ + {% if search_query %} +

Ergebnisse für „{{ search_query }}“:

+{% endif %} {% for ticket in tickets %}
diff --git a/ticketsystem/views.py b/ticketsystem/views.py index 1e41a20..be05dfd 100644 --- a/ticketsystem/views.py +++ b/ticketsystem/views.py @@ -8,6 +8,7 @@ from django.urls import reverse from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib import messages from django.shortcuts import redirect +from django.db.models import Q from .models import Ticket, TicketHistory @@ -16,24 +17,32 @@ class HomeView(TemplateView): template_name = "ticketsystem/home.html" -class TicketListView(LoginRequiredMixin, ListView): +class TicketListView(ListView): model = Ticket template_name = "ticketsystem/index.html" context_object_name = "tickets" - ordering = ["-created_at"] # neueste zuerst - paginate_by = 10 # optional: Pagination (10 Tickets pro Seite) + ordering = ["-created_at"] + paginate_by = 10 def get_queryset(self): queryset = super().get_queryset() status = self.request.GET.get("status") + query = self.request.GET.get("q") if status: queryset = queryset.filter(status=status) + + 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["search_query"] = self.request.GET.get("q", "") return context