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): ...@@ -100,10 +100,15 @@ class LessonEventQuerySet(RecurrencePolymorphicQuerySet):
"""Get all lesson events for a certain person (as teacher/participant, including amends).""" """Get all lesson events for a certain person (as teacher/participant, including amends)."""
from .models import LessonEvent from .models import LessonEvent
amended = LessonEvent.objects.filter( amended = (
Q(amended_by__isnull=False) & (Q(teachers=person) | Q(groups__members=person)) LessonEvent.objects.filter(
).values_list("amended_by__pk", flat=True) Q(amended_by__isnull=False) & (Q(teachers=person) | Q(groups__members=person))
return Q(teachers=person) | Q(groups__members=person) | Q(pk__in=amended) )
.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": def for_person(self, person: Union[int, Person]) -> "LessonEventQuerySet":
"""Get all lesson events for a certain person (as teacher/participant, including amends).""" """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