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( ...@@ -50,10 +50,10 @@ PersonalNoteFormSet = forms.modelformset_factory(
PersonalNote, form=PersonalNoteForm, max_num=0, extra=0) PersonalNote, form=PersonalNoteForm, max_num=0, extra=0)
class AbsentExcusedForm(forms.Form): class ManageAbsenceForm(forms.Form):
date_start = forms.DateField(label=_('Start date'), widget=forms.SelectDateWidget, initial=datetime.today()) 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()) date_end = forms.DateField(label=_('End date'), widget=forms.SelectDateWidget, initial=datetime.today)
starting_lesson = forms.IntegerField(label=_('Starting lesson'), initial=0) starting_lesson = forms.IntegerField(label=_('Starting lesson'), initial=0)
person = forms.ModelChoiceField(label=_('Person'), queryset=Person.objects.all(), widget=Select2Widget) person = forms.ModelChoiceField(label=_('Person'), queryset=Person.objects.all(), widget=Select2Widget)
absent = forms.BooleanField(label=_('Absent')) absent = forms.BooleanField(label=_('Absent'), initial=True)
excused = forms.BooleanField(label=_('Excused')) excused = forms.BooleanField(label=_('Excused'), initial=True)
...@@ -12,5 +12,5 @@ urlpatterns = [ ...@@ -12,5 +12,5 @@ urlpatterns = [
name='week_view_by_week'), name='week_view_by_week'),
path('print/group/<int:id_>', views.full_register_group, path('print/group/<int:id_>', views.full_register_group,
name='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 ...@@ -15,7 +15,7 @@ from biscuit.core.models import Group, Person
from biscuit.core.decorators import admin_required from biscuit.core.decorators import admin_required
from biscuit.core.util import messages from biscuit.core.util import messages
from .forms import AbsentExcusedForm, LessonDocumentationForm, PersonalNoteFormSet, SelectForm from .forms import ManageAbsenceForm, LessonDocumentationForm, PersonalNoteFormSet, SelectForm
from .models import LessonDocumentation from .models import LessonDocumentation
...@@ -207,28 +207,26 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: ...@@ -207,28 +207,26 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
@admin_required @admin_required
def absences_excuses(request: HttpRequest) -> HttpResponse: def manage_absence(request: HttpRequest) -> HttpResponse:
context = {} context = {}
manage_absence_form = AbsentExcusedForm( manage_absence_form = ManageAbsenceForm(request.POST or None)
request.POST or None, initial={'absent': True, 'excused': True})
if request.method == 'POST': if request.method == 'POST':
if manage_absence_form.is_valid(): if manage_absence_form.is_valid():
# Get person from form # Get data from form
person = 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'] start_date = manage_absence_form.cleaned_data['date_start']
end_date = manage_absence_form.cleaned_data['date_end'] end_date = manage_absence_form.cleaned_data['date_end']
starting_lesson = manage_absence_form.cleaned_data['starting_lesson'] 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 # Mark person as absent
day_list = []
delta = end_date - start_date 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) 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() person.save()
messages.success(request, _('The absence has been saved.')) 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