Skip to content
Snippets Groups Projects
forms.py 1.97 KiB
Newer Older
from django_select2.forms import ModelSelect2MultipleWidget, ModelSelect2Widget
from .models import AutomaticPlan, LessonSubstitution, SupervisionSubstitution
from .util.chronos_helpers import get_teachers
class LessonSubstitutionForm(forms.ModelForm):
Nik | Klampfradler's avatar
Nik | Klampfradler committed
    """Form to manage substitutions."""

    class Meta:
        model = LessonSubstitution
        fields = ["subject", "teachers", "room", "cancelled", "comment"]
            "teachers": ModelSelect2MultipleWidget(
                search_fields=[
                    "first_name__icontains",
                    "last_name__icontains",
                    "short_name__icontains",
                ],
                attrs={"data-minimum-input-length": 0, "class": "browser-default"},
    def __init__(self, request, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.request = request
        self.fields["teachers"].queryset = get_teachers(request.user)

class SupervisionSubstitutionForm(forms.ModelForm):
    """Form to manage supervisions substitutions."""

    class Meta:
        model = SupervisionSubstitution
        fields = ["teacher"]
        widgets = {
            "teacher": ModelSelect2Widget(
                search_fields=[
                    "first_name__icontains",
                    "last_name__icontains",
                    "short_name__icontains",
                ],
                attrs={"data-minimum-input-length": 0, "class": "browser-default"},
            ),
        }

    def __init__(self, request, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.request = request
        self.fields["teacher"].queryset = get_teachers(request.user)

class AutomaticPlanForm(forms.ModelForm):
    layout = Layout("slug", "name", "number_of_days", "show_header_box")

    class Meta:
        model = AutomaticPlan
        fields = ["slug", "name", "number_of_days", "show_header_box"]