diff --git a/ticketsystem/templates/registration/login.html b/ticketsystem/templates/registration/login.html index cce14db..5e006e1 100644 --- a/ticketsystem/templates/registration/login.html +++ b/ticketsystem/templates/registration/login.html @@ -1,56 +1,60 @@ +{% load static %} {% block content %} - - -
-

🔐 Login

-
- {% csrf_token %} - {{ form.as_p }} - -
-
+ + + + +
+
+
+
🔐
+

Anmelden

+

Melde dich in deinem Ticketsystem an

+
+
+
+ {% csrf_token %} + + {% if form.non_field_errors %} +
+ {% for error in form.non_field_errors %}
{{ error }}
{% endfor %} +
+ {% endif %} +
+ + +
+
+ + +
+
+ +
+
+
+

+ Noch keinen Account? + Kontaktiere uns +

+
+
+
+
{% endblock %} diff --git a/ticketsystem/templates/ticketsystem/home.html b/ticketsystem/templates/ticketsystem/home.html index 1615a06..2cb6e89 100644 --- a/ticketsystem/templates/ticketsystem/home.html +++ b/ticketsystem/templates/ticketsystem/home.html @@ -1,45 +1,53 @@ {% extends "ticketsystem/base.html" %} {% block content %} - - -
-

Willkommen im Korrekturmanagementsystem 🎫

-

Was möchten Sie tun?

- -
- 📄 Alle Tickets anzeigen - ➕ Neues Ticket erstellen - 📂 Offene Tickets +
+ +
+
🎫
+

Willkommen im Ticketsystem

+

Verwalte deine Aufgaben und Tickets effizient

+

Was möchten Sie tun?

+
+ + +
+

📊 Übersicht

+
+
+
{{ total_tickets|default:"0" }}
+
Tickets insgesamt
+
+
+
{{ open_tickets|default:"0" }}
+
Offene Tickets
+
+
+
{{ closed_tickets|default:"0" }}
+
Erledigte Tickets
+
+
+
-
{% endblock %} diff --git a/ticketsystem/templates/ticketsystem/index.html b/ticketsystem/templates/ticketsystem/index.html index 3ad1a6a..b3b69aa 100644 --- a/ticketsystem/templates/ticketsystem/index.html +++ b/ticketsystem/templates/ticketsystem/index.html @@ -1,196 +1,229 @@ {% extends "ticketsystem/base.html" %} {% block content %} - - -{% if messages %} -
- {% for message in messages %} -
- {{ message }} -
- {% endfor %} -
-{% endif %} - -
- -
-
-

🎫 Ticket-Übersicht

-

Verwalte und verfolge alle deine Tickets

+ + {% if messages %} +
+ {% for message in messages %} +
+ {{ message }} +
+ {% endfor %}
- -
- - -
-
- -
-
- - -
-
- - -
-
- -
- - {% if selected_status %} - - {% endif %} - -
-
-
-
-
- - - {% if search_query %} -
- Suchergebnisse für: „{{ search_query }}" - Suche zurücksetzen -
{% endif %} - - - {% if tickets %} -
- - - - - - - - - - - - - {% for ticket in tickets %} - - - - - - - - - {% endfor %} - -
#TitelStatusPrioritätZugewiesen anErstellt
- #{{ ticket.id }} - - - {{ ticket.title }} +
+ + + +
+
+ +
+
+ + + + {% if request.GET.assigned_to %} + + {% endif %} + {% if search_query %}{% endif %} +
+
+ +
+ + {% if request.GET.assigned_to == user.id|stringformat:'s' %} + + + 👤 Meine Tickets ✓ -
- {% if ticket.status == 'open' %} - - {{ ticket.get_status_display }} - - {% elif ticket.status == 'in_progress' %} - - {{ ticket.get_status_display }} - - {% elif ticket.status == 'closed' %} - - {{ ticket.get_status_display }} + {% else %} + + + 👤 Meine Tickets + + {% endif %} + + +
+
+ +
+ + {% if selected_status %}{% endif %} + {% if request.GET.assigned_to %} + + {% endif %} + +
+
+
+ + + {% if selected_status or request.GET.assigned_to or search_query %} +
+
+ Aktive Filter: + {% if selected_status %} + + Status: {{ selected_status|title }} + × {% endif %} -
- {% if ticket.priority == 'low' %} - - {{ ticket.get_priority_display }} - - {% elif ticket.priority == 'medium' %} - - {{ ticket.get_priority_display }} - - {% elif ticket.priority == 'high' %} - - {{ ticket.get_priority_display }} - - {% elif ticket.priority == 'urgent' %} - - {{ ticket.get_priority_display }} + {% if request.GET.assigned_to %} + + Meine Tickets + × {% endif %} - - {% if ticket.assigned_to %} - {{ ticket.assigned_to.username }} - {% else %} - Nicht zugewiesen + {% if search_query %} + + Suche: "{{ search_query }}" + × + {% endif %} - -
{{ ticket.created_at|date:"d.m.Y" }}
-
{{ ticket.created_at|date:"H:i" }}
-
-
- - - {% if is_paginated %} -
-
- Seite {{ page_obj.number }} von {{ page_obj.paginator.num_pages }} -
-
- {% if page_obj.has_previous %} - Zurück - {% endif %} - {% if page_obj.has_next %} - Weiter + Alle Filter entfernen +
+
{% endif %}
-
- {% endif %} - - {% else %} - -
-
📋
- {% if search_query %} -

Keine Tickets gefunden

-

- Keine Tickets gefunden für die Suche „{{ search_query }}" -

- - Alle Tickets anzeigen - + + {% if tickets %} +
+ + + + + + + + + + + + + {% for ticket in tickets %} + + + + + + + + + {% endfor %} + +
#TitelStatusPrioritätZugewiesen anErstellt
#{{ ticket.id }} + + {{ ticket.title }} + + + {% if ticket.status == 'open' %} + {{ ticket.get_status_display }} + {% elif ticket.status == 'in_progress' %} + + {{ ticket.get_status_display }} + + {% elif ticket.status == 'closed' %} + {{ ticket.get_status_display }} + {% endif %} + + {% if ticket.priority == 'low' %} + {{ ticket.get_priority_display }} + {% elif ticket.priority == 'medium' %} + + {{ ticket.get_priority_display }} + + {% elif ticket.priority == 'high' %} + + {{ ticket.get_priority_display }} + + {% elif ticket.priority == 'urgent' %} + {{ ticket.get_priority_display }} + {% endif %} + + {% if ticket.assigned_to %} + {{ ticket.assigned_to.username }} + {% else %} + Nicht zugewiesen + {% endif %} + +
{{ ticket.created_at|date:"d.m.Y" }}
+
{{ ticket.created_at|date:"H:i" }}
+
+
+ + {% if is_paginated %} +
+
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 %} +
+
+ {% endif %} {% else %} -

Noch keine Tickets vorhanden

-

Erstelle dein erstes Ticket um loszulegen.

- - Erstes Ticket erstellen - + +
+
📋
+ {% if search_query %} +

Keine Tickets gefunden

+

+ Keine Tickets gefunden für die Suche „{{ search_query }}" +

+ Alle Tickets anzeigen + {% else %} +

Noch keine Tickets vorhanden

+

Erstelle dein erstes Ticket um loszulegen.

+ + Erstes Ticket erstellen + + {% endif %} +
{% endif %}
- {% endif %} -
- -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/ticketsystem/urls.py b/ticketsystem/urls.py index 9a3f3a0..ebfc0a4 100644 --- a/ticketsystem/urls.py +++ b/ticketsystem/urls.py @@ -1,6 +1,5 @@ from django.urls import path -from . import views from .views import ( TicketListView, TicketCreateView, diff --git a/ticketsystem/views.py b/ticketsystem/views.py index fcad92a..3501279 100644 --- a/ticketsystem/views.py +++ b/ticketsystem/views.py @@ -16,6 +16,16 @@ from .models import Ticket, TicketHistory class HomeView(TemplateView): template_name = "ticketsystem/home.html" + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context.update({ + 'total_tickets': Ticket.objects.count(), + 'open_tickets': Ticket.objects.filter(status='open').count(), + 'closed_tickets': Ticket.objects.filter(status='closed').count(), + 'recent_tickets': Ticket.objects.order_by('-updated_at')[:5], + }) + return context + class TicketListView(ListView): model = Ticket @@ -27,11 +37,13 @@ class TicketListView(ListView): def get_queryset(self): queryset = super().get_queryset() status = self.request.GET.get("status") + assigned_to = self.request.GET.get("assigned_to") query = self.request.GET.get("q") if status: queryset = queryset.filter(status=status) - + if assigned_to: + queryset = queryset.filter(assigned_to_id=assigned_to) if query: queryset = queryset.filter( Q(title__icontains=query) | Q(description__icontains=query)