From 65ffbc22295b6322fa86dcd651acec9e7388cfd3 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Tue, 11 Aug 2020 17:32:58 +0200
Subject: [PATCH] Save groups a person is member of when personal notes are
 created

Fix #89 to fully work
---
 aleksis/apps/alsijil/model_extensions.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py
index ecba9f773..9e758d682 100644
--- a/aleksis/apps/alsijil/model_extensions.py
+++ b/aleksis/apps/alsijil/model_extensions.py
@@ -47,6 +47,7 @@ def mark_absent(
             week=wanted_week.week,
             defaults={"absent": absent, "excused": excused, "excuse_type": excuse_type},
         )
+        personal_note.groups_of_person.set(self.member_of.all())
 
         if remarks:
             if personal_note.remarks:
@@ -83,12 +84,14 @@ def get_personal_notes(self, wanted_week: CalendarWeek):
     )
 
     # Create all missing personal notes
-    PersonalNote.objects.bulk_create(
-        [
-            PersonalNote(person=person, lesson_period=self, week=wanted_week.week)
-            for person in missing_persons
-        ]
-    )
+    new_personal_notes = [
+        PersonalNote(person=person, lesson_period=self, week=wanted_week.week)
+        for person in missing_persons
+    ]
+    PersonalNote.objects.bulk_create(new_personal_notes)
+
+    for personal_note in new_personal_notes:
+        personal_note.groups_of_person.set(personal_note.person.member_of.all())
 
     return PersonalNote.objects.select_related("person").filter(
         lesson_period=self, week=wanted_week.week
-- 
GitLab