from django import forms
from django.db.models import Count
from django.utils.translation import ugettext_lazy as _

from biscuit.core.models import Person, Group

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)
    teacher = forms.ModelChoiceField(
        queryset=Person.objects.annotate(lessons_count=Count(
            'lessons')).filter(lessons_count__gt=0),
        label=_('Teacher'), required=False)
    room = forms.ModelChoiceField(
        queryset=Room.objects.annotate(lessons_count=Count(
            'lesson_periods')).filter(lessons_count__gt=0),
        label=_('Room'), required=False)


class LessonSubstitutionForm(forms.ModelForm):
    class Meta:
        model = LessonSubstitution
        fields = ['week', 'lesson_period', 'subject', 'teachers', 'room', 'cancelled']