diff --git a/ticketsystem/forms.py b/ticketsystem/forms.py index b458e6d..d431f7f 100644 --- a/ticketsystem/forms.py +++ b/ticketsystem/forms.py @@ -38,7 +38,7 @@ class TicketForm(forms.ModelForm): class Meta: model = Ticket - fields = ["title", "description", "status", "priority", "course", "answer", "material"] + fields = ["title", "description", "status", "mistake", "course", "answer", "material"] widgets = { 'answer': forms.Textarea(attrs={ 'rows': 4, @@ -68,14 +68,17 @@ class TicketForm(forms.ModelForm): def _set_field_permissions(self, is_tutor, is_creator, is_superuser): """Setzt welche Felder bearbeitet werden dürfen""" - if is_tutor and not is_superuser: + if self.ticket.status == 'resolved' and is_creator and not is_superuser: + for field_name in self.fields: + if field_name == "answer": + self.fields[field_name].disabled = True + elif is_tutor and not is_superuser: # Tutor darf ändern: readonly_fields = ['title', 'description', 'material'] for field_name in readonly_fields: if field_name in self.fields: self.fields[field_name].disabled = True elif is_creator and not is_superuser and self.ticket.status != 'resolved': - # Creator darf ändern bei resolved for field_name in self.fields: self.fields[field_name].disabled = True diff --git a/ticketsystem/models.py b/ticketsystem/models.py index 1ad4603..bff57f6 100644 --- a/ticketsystem/models.py +++ b/ticketsystem/models.py @@ -39,10 +39,14 @@ class Ticket(models.Model): ("closed", "Geschlossen"), ] - PRIORITY_CHOICES = [ - ("low", "Niedrig"), - ("medium", "Mittel"), - ("high", "Hoch"), + MISTAKE_CHOICES = [ + ("typo", "Tippfehler"), + ("formatting_issue", "Formatierungsfehler"), + ("missing_content", "Fehlender Inhalt"), + ("outdated_content", "Veralteter Inhalt"), + ("audio_problem", "Audio-Problem"), + ("video_problem", "Video-Problem"), + ("other", "Sonstiges"), ] MATERIAL_CHOICES = [ @@ -58,7 +62,7 @@ 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") + mistake = models.CharField(max_length=20, choices=MISTAKE_CHOICES, default="medium") material = models.CharField(max_length=20, choices=MATERIAL_CHOICES, default="script") answer = models.TextField( @@ -89,7 +93,7 @@ class Ticket(models.Model): updated_at = models.DateTimeField(auto_now=True) def __str__(self): - return f"[{self.get_priority_display()}] {self.title} ({self.get_status_display()})" + return f"[{self.get_mistake_display()}] {self.title} ({self.get_status_display()})" class Comment(models.Model): diff --git a/ticketsystem/templates/ticketsystem/detail.html b/ticketsystem/templates/ticketsystem/detail.html index a50a4fb..16cc9b2 100644 --- a/ticketsystem/templates/ticketsystem/detail.html +++ b/ticketsystem/templates/ticketsystem/detail.html @@ -76,13 +76,13 @@
- {% if ticket.status != 'resolved' or ticket.status != 'closed' %}Eine Antwort ist erforderlich beim Setzen des Status auf "Gelöst"{% endif %} + {% if ticket.status != 'resolved' or ticket.status != 'closed' %} + Eine Antwort ist erforderlich beim Setzen des Status auf "Gelöst" + {% endif %}
{% endif %} diff --git a/ticketsystem/templates/ticketsystem/index.html b/ticketsystem/templates/ticketsystem/index.html index 48a4ddb..e74012a 100644 --- a/ticketsystem/templates/ticketsystem/index.html +++ b/ticketsystem/templates/ticketsystem/index.html @@ -132,7 +132,7 @@