Newer
Older
from rules import add_perm, always_allow
from aleksis.core.util.predicates import (
has_person,
has_global_perm,
has_any_object,
has_object_perm,
)
from .models import LessonSubstitution
# View timetable overview
view_timetable_overview_predicate = has_person & has_global_perm("chronos.view_timetable_overview")
add_perm("chronos.view_timetable_overview", view_timetable_overview_predicate)
# View my timetable
add_perm("chronos.view_my_timetable", has_person)
# View timetable
view_timetable_predicate = has_person & (
has_global_perm("chronos.view_all_timetables") | has_timetable_perm
)
add_perm("chronos.view_timetable", view_timetable_predicate)
# View all lessons per day
view_lessons_day_predicate = has_person & has_global_perm("chronos.view_lessons_day")
add_perm("chronos.view_lessons_day", view_lessons_day_predicate)
# Edit substition
edit_substitution_predicate = has_person & (
has_global_perm("chronos.change_lessonsubstitution")
| has_object_perm("chronos.change_lessonsubstitution")
)
add_perm("chronos.edit_substitution", edit_substitution_predicate)
# Delete substitution
delete_substitution_predicate = has_person & (
has_global_perm("chronos.delete_lessonsubstitution")
| has_object_perm("chronos.delete_lessonsubstitution")
)
add_perm("chronos.delete_substitution", delete_substitution_predicate)
# View substitutions
view_substitutions_predicate = has_person & (
has_global_perm("chronos.view_lessonsubstitution")
| has_any_object("chronos.view_lessonsubstitution", LessonSubstitution)
)
add_perm("chronos.view_substitutions", view_substitutions_predicate)