diff --git a/ticketsystem/admin.py b/ticketsystem/admin.py index 649b0bd..f474898 100644 --- a/ticketsystem/admin.py +++ b/ticketsystem/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin -from .models import Ticket +from .models import Ticket, Course admin.site.register(Ticket) +admin.site.register(Course) diff --git a/ticketsystem/models.py b/ticketsystem/models.py index 19e8d55..5dc3b52 100644 --- a/ticketsystem/models.py +++ b/ticketsystem/models.py @@ -2,6 +2,35 @@ from django.db import models from django.contrib.auth.models import User +class Course(models.Model): + """Kurs-Model für Backend-Verwaltung""" + name = models.CharField(max_length=200, verbose_name="Kurs-Name") + code = models.CharField(max_length=50, unique=True, verbose_name="Kurs-Code") # z.B. "PROG-101" + description = models.TextField(blank=True, verbose_name="Beschreibung") + + tutor = models.ForeignKey( + User, + on_delete=models.SET_NULL, + null=True, + blank=True, + verbose_name="Tutor", + related_name="courses_as_tutor" + ) + + is_active = models.BooleanField(default=True, verbose_name="Aktiv") + created_at = models.DateTimeField(auto_now_add=True) + + class Meta: + ordering = ['name'] + verbose_name = "Kurs" + verbose_name_plural = "Kurse" + + def __str__(self): + if self.tutor: + return f"{self.code} - {self.name} (Tutor: {self.tutor.username})" + return f"{self.code} - {self.name}" + + class Ticket(models.Model): STATUS_CHOICES = [ ("new", "Neu"), @@ -20,8 +49,13 @@ class Ticket(models.Model): title = models.CharField(max_length=200) description = models.TextField() status = models.CharField(max_length=20, choices=STATUS_CHOICES, default="new") - priority = models.CharField( - max_length=10, choices=PRIORITY_CHOICES, default="medium" + priority = models.CharField(max_length=10, choices=PRIORITY_CHOICES, default="medium") + + course = models.ForeignKey( + Course, + on_delete=models.CASCADE, + verbose_name="Kurs", + related_name="tickets" ) created_by = models.ForeignKey( User, related_name="tickets_created", on_delete=models.CASCADE diff --git a/ticketsystem/templates/ticketsystem/detail.html b/ticketsystem/templates/ticketsystem/detail.html index 8233fe7..cdedc6b 100644 --- a/ticketsystem/templates/ticketsystem/detail.html +++ b/ticketsystem/templates/ticketsystem/detail.html @@ -35,6 +35,17 @@ {% if not view.can_edit %}disabled{% endif %} class="w-full p-2 border border-gray-300 rounded shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 {% if not view.can_edit %}bg-gray-100{% endif %}">{{ ticket.description }} +