From c3cabcc682eeaf793552c7460abc3ff37acf5bcb Mon Sep 17 00:00:00 2001 From: Dominik George <nik@naturalnet.de> Date: Wed, 20 Nov 2019 14:20:00 +0100 Subject: [PATCH] Annotate persons in full_register with filtered personal notes. Advances #45, #46. --- biscuit/apps/alsijil/views.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py index 6b1130ac4..8a41fc0db 100644 --- a/biscuit/apps/alsijil/views.py +++ b/biscuit/apps/alsijil/views.py @@ -16,7 +16,7 @@ from biscuit.core.decorators import admin_required from biscuit.core.util import messages from .forms import RegisterAbsenceFormLessonDocumentationForm, PersonalNoteFormSet, RegisterAbsenceForm, SelectForm -from .models import LessonDocumentation +from .models import LessonDocumentation, PersonalNoteFilter @login_required @@ -197,6 +197,16 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: tardiness=Sum('personal_notes__late') ) + # FIXME Move to manager + personal_note_filters = PersonalNoteFilter.objects.all() + for personal_note_filter in personal_note_filters: + persons = persons.annotate( + Count( + personal_notes__remarks__iregex=personal_note_filter.regex, + output_field='personal_notes_with_%s' % personal_notes_filter.identifier + ) + ) + context['persons'] = persons context['group'] = group context['weeks'] = weeks -- GitLab