From 394965458d535ce9ae87c922875fbdb81d5cc573 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 16 Aug 2020 12:46:58 +0200
Subject: [PATCH] Do not all queries in has_any_object_absence, only necessary
 ones

---
 aleksis/apps/alsijil/util/predicates.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index 68e212c71..4c9f369fc 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -191,7 +191,9 @@ def has_any_object_absence(user: User) -> bool:
     """
     Predicate which builds a query with all the persons the given users is allowed to register an absence for.
     """
-    return get_objects_for_user(user, "core.register_absence_person", Person)\
-        .union(Person.objects.filter(member_of__owners=user.person))\
-        .union(Person.objects.filter(member_of__in=get_objects_for_user(user, "core.register_absence_group", Group)))\
-        .exists()
+    if get_objects_for_user(user, "core.register_absence_person", Person).exists():
+        return True
+    if Person.objects.filter(member_of__owners=user.person).exists():
+        return True
+    if Person.objects.filter(member_of__in=get_objects_for_user(user, "core.register_absence_group", Group)).exists():
+        return True
-- 
GitLab