diff --git a/biscuit/apps/alsijil/forms.py b/biscuit/apps/alsijil/forms.py index 1d45d083661fca9fc6beafc34f1e0358d819779f..6084cf2bf015b42b937fc20b10c41af3453a8066 100644 --- a/biscuit/apps/alsijil/forms.py +++ b/biscuit/apps/alsijil/forms.py @@ -50,10 +50,10 @@ PersonalNoteFormSet = forms.modelformset_factory( PersonalNote, form=PersonalNoteForm, max_num=0, extra=0) -class AbsentExcusedForm(forms.Form): - date_start = forms.DateField(label=_('Start date'), widget=forms.SelectDateWidget, initial=datetime.today()) - date_end = forms.DateField(label=_('End date'), widget=forms.SelectDateWidget, initial=datetime.today()) +class ManageAbsenceForm(forms.Form): + date_start = forms.DateField(label=_('Start date'), widget=forms.SelectDateWidget, initial=datetime.today) + date_end = forms.DateField(label=_('End date'), widget=forms.SelectDateWidget, initial=datetime.today) starting_lesson = forms.IntegerField(label=_('Starting lesson'), initial=0) person = forms.ModelChoiceField(label=_('Person'), queryset=Person.objects.all(), widget=Select2Widget) - absent = forms.BooleanField(label=_('Absent')) - excused = forms.BooleanField(label=_('Excused')) + absent = forms.BooleanField(label=_('Absent'), initial=True) + excused = forms.BooleanField(label=_('Excused'), initial=True) diff --git a/biscuit/apps/alsijil/urls.py b/biscuit/apps/alsijil/urls.py index 7174594323a363bd4e4875a56da9abeac79f4eb1..ed548f0b7ae6897539ff3faa1d2fde9d1c4f1c87 100644 --- a/biscuit/apps/alsijil/urls.py +++ b/biscuit/apps/alsijil/urls.py @@ -12,5 +12,5 @@ urlpatterns = [ name='week_view_by_week'), path('print/group/<int:id_>', views.full_register_group, name='full_register_group'), - path('absences/new', views.absences_excuses, name='manage_absence'), + path('absences/new', views.manage_absence, name='manage_absence'), ] diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py index 28ab53c601b4b940776e36f92bc6219a6a287d89..b3bf3f03072aa805e7d7b9cd760edb157bbe417e 100644 --- a/biscuit/apps/alsijil/views.py +++ b/biscuit/apps/alsijil/views.py @@ -15,7 +15,7 @@ from biscuit.core.models import Group, Person from biscuit.core.decorators import admin_required from biscuit.core.util import messages -from .forms import AbsentExcusedForm, LessonDocumentationForm, PersonalNoteFormSet, SelectForm +from .forms import ManageAbsenceForm, LessonDocumentationForm, PersonalNoteFormSet, SelectForm from .models import LessonDocumentation @@ -207,28 +207,26 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: @admin_required -def absences_excuses(request: HttpRequest) -> HttpResponse: +def manage_absence(request: HttpRequest) -> HttpResponse: context = {} - manage_absence_form = AbsentExcusedForm( - request.POST or None, initial={'absent': True, 'excused': True}) + manage_absence_form = ManageAbsenceForm(request.POST or None) if request.method == 'POST': if manage_absence_form.is_valid(): - # Get person from form + # Get data from form person = manage_absence_form.cleaned_data['person'] - - # Get dates and starting lesson start_date = manage_absence_form.cleaned_data['date_start'] end_date = manage_absence_form.cleaned_data['date_end'] starting_lesson = manage_absence_form.cleaned_data['starting_lesson'] - + absent = manage_absence_form.cleaned_data['absent'] + excused = manage_absence_form.cleaned_data['excused'] + # Mark person as absent - day_list = [] delta = end_date - start_date - for i in range(delta.days+1): + for date in range(delta.days+1): day = start_date + timedelta(days=1) - person.mark_absent(day, absent=manage_absence_form.cleaned_data['absent'], excused=manage_absence_form.cleaned_data['excused']) + person.mark_absent(day, absent=absent, excused=excused) person.save() messages.success(request, _('The absence has been saved.'))