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