diff --git a/fet2020/tasks/forms.py b/fet2020/tasks/forms.py index 40964b71..a0383427 100644 --- a/fet2020/tasks/forms.py +++ b/fet2020/tasks/forms.py @@ -1,6 +1,7 @@ from django import forms from django.contrib.admin.widgets import FilteredSelectMultiple from django.contrib.auth.models import User +from django.core.validators import ValidationError from django.forms.widgets import HiddenInput from django.utils import timezone from django.utils.translation import gettext_lazy as _ @@ -78,6 +79,24 @@ class TaskCreateForm(forms.ModelForm): "assigned_to" ].queryset.order_by("username") + def clean(self): + cleaned_data = super().clean() + assigned_to = cleaned_data["assigned_to"] + + if assigned_to: + task_list = TaskList.objects.get(id=cleaned_data["task_list"].id) + for elem in task_list.users.all(): + if assigned_to == elem: + break + else: + raise ValidationError( + _( + f"User '{assigned_to}' gibt es nicht in der User-Liste der Task-Gruppe '{task_list}'." + ) + ) + + return cleaned_data + class TaskUpdateForm(forms.ModelForm): class Meta: @@ -137,7 +156,4 @@ class DocumentForm(forms.ModelForm): "date": _("Datum"), } - widgets = { - "date": DateInput(format=("%d-%m-%Y")), - "task": HiddenInput - } + widgets = {"date": DateInput(format=("%d-%m-%Y")), "task": HiddenInput}