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 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