-
Jonathan Weth authoredJonathan Weth authored
predicates.py 903 B
from django.contrib.auth.models import User
from rules import predicate
from aleksis.core.models import Person
from aleksis.core.util.core_helpers import get_site_preferences
from ..models import Absence
@predicate
def can_manage_absences_for_person(user: User, obj: Person) -> bool:
"""Predicate for viewing absences of a person."""
group_types = get_site_preferences()["alsijil__group_types_manage_person_absences"]
if not group_types:
return False
qs = obj.member_of.filter(owners=user.person)
return qs.filter(group_type__in=group_types).exists()
@predicate
def can_manage_absence(user: User, obj: Absence) -> bool:
group_types = get_site_preferences()["alsijil__group_types_manage_person_absences"]
if not group_types:
return False
qs = obj.person.member_of.filter(owners=user.person)
return qs.filter(group_type__in=group_types).exists()