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

Rename starting_period to from_period.

parent e1a521bd
No related branches found
No related tags found
No related merge requests found
......@@ -53,7 +53,7 @@ PersonalNoteFormSet = forms.modelformset_factory(
class RegisterAbsenceForm(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, min_value=0)
from_period = forms.IntegerField(label=_('From period'), initial=0, min_value=0)
person = forms.ModelChoiceField(label=_('Person'), queryset=Person.objects.all(), widget=Select2Widget)
absent = forms.BooleanField(label=_('Absent'), initial=True, required=False)
excused = forms.BooleanField(label=_('Excused'), initial=True, required=False)
......
from datetime import date
From datetime import date
from django.db.models import Exists, F, OuterRef
......@@ -10,7 +10,7 @@ from .models import PersonalNote
@Person.method
def mark_absent(self, day: date, starting_period: int = 0, absent: bool = True, bool = False, remarks: str = ''):
def mark_absent(self, day: date, from_period: int = 0, absent: bool = True, bool = False, remarks: str = ''):
""" Mark a person absent for all lessons in a day, optionally starting with
a selected period number.
......@@ -30,7 +30,7 @@ def mark_absent(self, day: date, starting_period: int = 0, absent: bool = True,
lesson_periods = self.lesson_periods_as_participant.on_day(
day
).filter(
period__period__gte=starting_period
period__period__gte=from_period
)
# Create and update all personal notes for the discovered lesson periods
......
......@@ -232,7 +232,7 @@ def register_absence(request: HttpRequest) -> HttpResponse:
person = register_absence_form.cleaned_data['person']
start_date = register_absence_form.cleaned_data['date_start']
end_date = register_absence_form.cleaned_data['date_end']
starting_lesson = register_absence_form.cleaned_data['starting_lesson']
from_period = register_absence_form.cleaned_data['from_period']
absent = register_absence_form.cleaned_data['absent']
excused = register_absence_form.cleaned_data['excused']
remarks = register_absence_form.cleaned_data['remarks']
......@@ -240,9 +240,9 @@ def register_absence(request: HttpRequest) -> HttpResponse:
# Mark person as absent
delta = end_date - start_date
for i in range(delta.days+1):
starting_period = starting_lesson if i == 0 else 0
from_period = from_period if i == 0 else 0
day = start_date + timedelta(days=i)
person.mark_absent(day, starting_period, absent, excused, remarks)
person.mark_absent(day, from_period, absent, excused, remarks)
messages.success(request, _('The absence has been saved.'))
return redirect('index')
......
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