diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py index 68e212c716fd82c85523b66b4826d7d6ad01d8c1..4c9f369fc3be9e38a259219591be8014bcb0ec1c 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