Skip to content
Snippets Groups Projects
Verified Commit 7f27e2af authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Try union for the get_objects for_person_q

parent 4d3036bc
No related branches found
No related tags found
1 merge request!381Optimize get objects
Pipeline #193548 passed
......@@ -100,10 +100,15 @@ class LessonEventQuerySet(RecurrencePolymorphicQuerySet):
"""Get all lesson events for a certain person (as teacher/participant, including amends)."""
from .models import LessonEvent
amended = LessonEvent.objects.filter(
Q(amended_by__isnull=False) & (Q(teachers=person) | Q(groups__members=person))
).values_list("amended_by__pk", flat=True)
return Q(teachers=person) | Q(groups__members=person) | Q(pk__in=amended)
amended = (
LessonEvent.objects.filter(
Q(amended_by__isnull=False) & (Q(teachers=person) | Q(groups__members=person))
)
.values_list("amended_by__pk", flat=True)
.union(LessonEvent.objects.filter(teachers=person).values_list("pk", flat=True))
.union(LessonEvent.objects.filter(groups__members=person).values_list("pk", flat=True))
)
return Q(pk__in=amended)
def for_person(self, person: Union[int, Person]) -> "LessonEventQuerySet":
"""Get all lesson events for a certain person (as teacher/participant, including amends)."""
......
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