diff --git a/biscuit/apps/chronos/forms.py b/biscuit/apps/chronos/forms.py index 3af258cad1ede16001cfc9b94497648bc0ee854e..666eb0e6c12fcd064d37980ff333e91e1a4ec242 100644 --- a/biscuit/apps/chronos/forms.py +++ b/biscuit/apps/chronos/forms.py @@ -1,6 +1,7 @@ from django import forms from django.db.models import Count from django.utils.translation import ugettext_lazy as _ +from django_select2.forms import ModelSelect2MultipleWidget, Select2Widget from biscuit.core.models import Person, Group @@ -10,18 +11,21 @@ from .models import Room, LessonSubstitution, Subject, LessonPeriod class SelectForm(forms.Form): group = forms.ModelChoiceField( queryset=Group.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0), - label=_('Group'), required=False) + label=_('Group'), required=False, widget=Select2Widget) teacher = forms.ModelChoiceField( queryset=Person.objects.annotate(lessons_count=Count( 'lessons_as_teacher')).filter(lessons_count__gt=0), - label=_('Teacher'), required=False) + label=_('Teacher'), required=False, widget=Select2Widget) room = forms.ModelChoiceField( queryset=Room.objects.annotate(lessons_count=Count( 'lesson_periods')).filter(lessons_count__gt=0), - label=_('Room'), required=False) + label=_('Room'), required=False, widget=Select2Widget) class LessonSubstitutionForm(forms.ModelForm): class Meta: model = LessonSubstitution fields = ['week', 'lesson_period', 'subject', 'teachers', 'room', 'cancelled'] + widgets = { + 'teachers': ModelSelect2MultipleWidget(search_fields=['first_name__icontains', 'last_name__icontains', 'short_name__icontains']) + } diff --git a/biscuit/apps/chronos/templates/chronos/edit_substitution.html b/biscuit/apps/chronos/templates/chronos/edit_substitution.html index 47a62446b0a7f11c4960e93feddfa55b7c0c3452..88e3ac311ca27155dd668299f3be072b1cf961f7 100644 --- a/biscuit/apps/chronos/templates/chronos/edit_substitution.html +++ b/biscuit/apps/chronos/templates/chronos/edit_substitution.html @@ -3,6 +3,17 @@ {% extends "core/base.html" %} {% load bootstrap4 font_awesome i18n %} +{% block bootstrap4_extra_head %} + {{ block.super }} + {{ edit_substitution_form.media.css }} +{% endblock %} + +{% block bootstrap4_extra_script %} + {{ block.super }} + {{ edit_substitution_form.media.js }} +{% endblock %} + + {% block bootstrap4_title %}{% blocktrans %}Edit substitution{% endblocktrans %} - {{ block.super }}{% endblock %} {% block page_title %}{% blocktrans %}Edit substitution{% endblocktrans %}{% endblock %} diff --git a/biscuit/apps/chronos/templates/chronos/tt_week.html b/biscuit/apps/chronos/templates/chronos/tt_week.html index b90aec590511853e51e0fb410af77e7da4523dff..d289523f3fb9e80ece940e8975fce853f081832d 100644 --- a/biscuit/apps/chronos/templates/chronos/tt_week.html +++ b/biscuit/apps/chronos/templates/chronos/tt_week.html @@ -6,6 +6,12 @@ {% block bootstrap4_extra_head %} {{ block.super }} <link rel="stylesheet" href="{% static 'css/chronos/timetable.css' %}" /> + {{ select_form.media.css }} +{% endblock %} + +{% block bootstrap4_extra_script %} + {{ block.super }} + {{ select_form.media.js }} {% endblock %} {% block bootstrap4_title %}{% blocktrans %}Timetable{% endblocktrans %} - {{ block.super }}{% endblock %}