Skip to content
Snippets Groups Projects
Verified Commit 3d6935a3 authored by Nik | Klampfradler's avatar Nik | Klampfradler Committed by mirabilos
Browse files

Bulk create missing persons when opening lesson view.

parent 18373119
No related branches found
No related tags found
No related merge requests found
...@@ -41,19 +41,17 @@ def lesson(request: HttpRequest, week: Optional[int] = None, period_id: Optional ...@@ -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') request.POST or None, instance=lesson_documentation, prefix='leson_documentation')
# Create all missing personal notes about members of all groups in lesson # Create all missing personal notes about members of all groups in lesson
missing_persons = Person.objects.filter(
missing_pks = Person.objects.filter(
member_of__in=Group.objects.filter(pk__in=lesson_period.lesson.groups.all()), member_of__in=Group.objects.filter(pk__in=lesson_period.lesson.groups.all()),
is_active=True is_active=True
).exclude( ).exclude(
personal_notes__week=wanted_week, personal_notes__week=wanted_week,
personal_notes__lesson_period=lesson_period personal_notes__lesson_period=lesson_period
).values_list('pk', flat=True) ).all()
PersonalNote.objects.bulk_create([
for group in lesson_period.lesson.groups.all(): PersonalNote(person=person, lesson_period=lesson_period,
for person in group.members.filter(is_active=True): week=wanted_wek) for person in missing_persons
note, created = PersonalNote.objects.get_or_create(person=person, lesson_period=lesson_period, ])
week=wanted_week)
# Create a formset that holds all personal notes for all persons in this lesson # Create a formset that holds all personal notes for all persons in this lesson
persons_qs = PersonalNote.objects.filter( persons_qs = PersonalNote.objects.filter(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment