From 6782f58201d634a9d6cff5a1085bf36c70dadc15 Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Tue, 19 Nov 2019 20:53:49 +0100
Subject: [PATCH] Add basic view logic.

---
 biscuit/apps/alsijil/forms.py |  2 +-
 biscuit/apps/alsijil/views.py | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/biscuit/apps/alsijil/forms.py b/biscuit/apps/alsijil/forms.py
index 8278d40e2..140e74071 100644
--- a/biscuit/apps/alsijil/forms.py
+++ b/biscuit/apps/alsijil/forms.py
@@ -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'))
diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py
index 3c5984886..c31e5c8e1 100644
--- a/biscuit/apps/alsijil/views.py
+++ b/biscuit/apps/alsijil/views.py
@@ -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')
-- 
GitLab