diff --git a/ticketsystem/templates/ticketsystem/detail.html b/ticketsystem/templates/ticketsystem/detail.html index f209410..19c855d 100644 --- a/ticketsystem/templates/ticketsystem/detail.html +++ b/ticketsystem/templates/ticketsystem/detail.html @@ -36,6 +36,10 @@

🎫 Ticket #{{ ticket.id }} – {{ ticket.title }}

+

+ ✏️ Dieses Ticket bearbeiten +

+
Status: {{ ticket.get_status_display }}
diff --git a/ticketsystem/urls.py b/ticketsystem/urls.py index 195e1c2..abf1a2d 100644 --- a/ticketsystem/urls.py +++ b/ticketsystem/urls.py @@ -1,13 +1,14 @@ from django.urls import path from . import views -from .views import TicketListView, TicketCreateView +from .views import TicketListView, TicketCreateView, TicketUpdateView urlpatterns = [ # /ticketsystem/ path("", TicketListView.as_view(), name="index"), # /ticketsystem/detail/ - path("/", views.detail, name="detail"), + path("/", views.detail, name="detail"), # /ticketsystem/new/ path("new/", TicketCreateView.as_view(), name="create"), + path("/modify/", TicketUpdateView.as_view(), name="modify"), ] \ No newline at end of file diff --git a/ticketsystem/views.py b/ticketsystem/views.py index c254226..a5615e9 100644 --- a/ticketsystem/views.py +++ b/ticketsystem/views.py @@ -1,6 +1,6 @@ from django.shortcuts import get_object_or_404, render from django.views.generic import ListView -from django.views.generic.edit import CreateView +from django.views.generic.edit import CreateView, UpdateView from django.urls import reverse_lazy from .models import Ticket @@ -27,8 +27,8 @@ class TicketListView(ListView): return context -def detail(request, ticket_id): - ticket = get_object_or_404(Ticket, pk=ticket_id) +def detail(request, pk): + ticket = get_object_or_404(Ticket, pk=pk) return render(request, "ticketsystem/detail.html", {"ticket": ticket}) @@ -42,3 +42,12 @@ class TicketCreateView(CreateView): form.instance.created_by = self.request.user # Der angemeldete User wird automatisch gesetzt form.instance.status = "open" # Neues Ticket beginnt immer als "offen" return super().form_valid(form) + +class TicketUpdateView(UpdateView): + model = Ticket + fields = ["title", "description", "status", "priority", "assigned_to"] + template_name = "ticketsystem/ticket_form.html" # kannst das gleiche Template wie beim Erstellen verwenden + success_url = reverse_lazy("index") # oder zurück zur Detailseite + + def get_queryset(self): + return Ticket.objects.all() # Optional: Nur eigene Tickets bearbeiten lassen?