Skip to content
Snippets Groups Projects
Verified Commit 6782f582 authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Add basic view logic.

parent 8c0ccc65
No related branches found
No related tags found
1 merge request!26Resolve "Register absences and excuses centrally"
......@@ -53,7 +53,7 @@ PersonalNoteFormSet = forms.modelformset_factory(
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())
starting_lesson = forms.ChoiceField(label=_('Starting lesson'))
starting_lesson = forms.IntegerField(label=_('Starting lesson'))
person = forms.ModelChoiceField(label=_('Person'), queryset=Person.objects.all(), widget=Select2Widget)
absent = forms.BooleanField(label=_('Absent'))
excused = forms.BooleanField(label=_('Excused'))
......@@ -13,6 +13,7 @@ from biscuit.apps.chronos.models import LessonPeriod
from biscuit.apps.chronos.util import CalendarWeek
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 .models import LessonDocumentation
......@@ -215,8 +216,20 @@ def absences_excuses(request: HttpRequest) -> HttpResponse:
if request.method == 'POST':
if manage_absence_form.is_valid():
# Get person from form
person = Person.objects.get(id=manage_absence_form.cleaned_data['person'])
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']
# Mark person as absent
day_list = []
delta = end_date - start_date
for i 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.save()
messages.success(request, _('The absence has been saved.'))
return redirect(request, 'index.html')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment