diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py index b4a5d6fd33b90eaa159fb54fbb328a0c2a5b72cf..69e10cdcd292e322a8919c80069a201c7a6734d5 100644 --- a/biscuit/apps/alsijil/views.py +++ b/biscuit/apps/alsijil/views.py @@ -41,19 +41,17 @@ def lesson(request: HttpRequest, week: Optional[int] = None, period_id: Optional request.POST or None, instance=lesson_documentation, prefix='leson_documentation') # Create all missing personal notes about members of all groups in lesson - - missing_pks = Person.objects.filter( + missing_persons = Person.objects.filter( member_of__in=Group.objects.filter(pk__in=lesson_period.lesson.groups.all()), is_active=True ).exclude( personal_notes__week=wanted_week, personal_notes__lesson_period=lesson_period - ).values_list('pk', flat=True) - - for group in lesson_period.lesson.groups.all(): - for person in group.members.filter(is_active=True): - note, created = PersonalNote.objects.get_or_create(person=person, lesson_period=lesson_period, - week=wanted_week) + ).all() + PersonalNote.objects.bulk_create([ + PersonalNote(person=person, lesson_period=lesson_period, + week=wanted_wek) for person in missing_persons + ]) # Create a formset that holds all personal notes for all persons in this lesson persons_qs = PersonalNote.objects.filter(