feat: added create ticket site
This commit is contained in:
@@ -1,12 +1,44 @@
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
from django.views.generic import ListView
|
||||
from django.views.generic.edit import CreateView
|
||||
from django.urls import reverse_lazy
|
||||
|
||||
from .models import Ticket
|
||||
|
||||
|
||||
def index(request):
|
||||
latest_ticket_list = Ticket.objects.order_by("-created_at")[:5]
|
||||
output = ", ".join([t.title for t in latest_ticket_list])
|
||||
return HttpResponse(output)
|
||||
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)
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
status = self.request.GET.get("status")
|
||||
|
||||
if status:
|
||||
queryset = queryset.filter(status=status)
|
||||
return queryset
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["selected_status"] = self.request.GET.get("status", "")
|
||||
return context
|
||||
|
||||
|
||||
def detail(request, ticket_id):
|
||||
return HttpResponse("You're looking at Ticket %s." % ticket_id)
|
||||
ticket = get_object_or_404(Ticket, pk=ticket_id)
|
||||
return render(request, "ticketsystem/detail.html", {"ticket": ticket})
|
||||
|
||||
|
||||
class TicketCreateView(CreateView):
|
||||
model = Ticket
|
||||
fields = ["title", "description", "priority", "assigned_to"] # user & status setzen wir automatisch
|
||||
template_name = "ticketsystem/ticket_form.html"
|
||||
success_url = reverse_lazy("index")
|
||||
|
||||
def form_valid(self, form):
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user