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

Clean up code.

parent 9f2a4605
No related branches found
No related tags found
1 merge request!26Resolve "Register absences and excuses centrally"
......@@ -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)
......@@ -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'),
]
......@@ -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.'))
......
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