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