Skip to content
Snippets Groups Projects
Commit 7521c998 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Merge branch 'master' into...

Merge branch 'master' into 135-make-chronos-compatible-to-other-haystack-search-backends-and-rules-based-search-filtering
parents b3cbe2a4 a47bec49
No related branches found
No related tags found
1 merge request!162Resolve "Make chronos compatible to other haystack search backends and rules-based search filtering"
Pipeline #11876 passed
...@@ -10,10 +10,11 @@ class ChronosConfig(AppConfig): ...@@ -10,10 +10,11 @@ class ChronosConfig(AppConfig):
} }
licence = "EUPL-1.2+" licence = "EUPL-1.2+"
copyright_info = ( copyright_info = (
([2018, 2019, 2020], "Jonathan Weth", "wethjo@katharineum.de"), ([2018, 2019, 2020, 2021], "Jonathan Weth", "wethjo@katharineum.de"),
([2018, 2019], "Frank Poetzsch-Heffter", "p-h@katharineum.de"), ([2018, 2019], "Frank Poetzsch-Heffter", "p-h@katharineum.de"),
([2019, 2020], "Dominik George", "dominik.george@teckids.org"), ([2019, 2020], "Dominik George", "dominik.george@teckids.org"),
([2019, 2021], "Hangzhi Yu", "yuha@katharineum.de"),
([2019], "Julian Leucker", "leuckeju@katharineum.de"), ([2019], "Julian Leucker", "leuckeju@katharineum.de"),
([2019], "Tom Teichler", "tom.teichler@teckids.org"), ([2019], "Tom Teichler", "tom.teichler@teckids.org"),
([2019], "Hangzhi Yu", "yuha@katharineum.de"), ([2021], "Lloyd Meins", "meinsll@katharineum.de"),
) )
...@@ -19,7 +19,7 @@ MENUS = { ...@@ -19,7 +19,7 @@ MENUS = {
"validators": [ "validators": [
( (
"aleksis.core.util.predicates.permission_validator", "aleksis.core.util.predicates.permission_validator",
"chronos.view_my_timetable", "chronos.view_my_timetable_rule",
), ),
], ],
}, },
...@@ -30,7 +30,7 @@ MENUS = { ...@@ -30,7 +30,7 @@ MENUS = {
"validators": [ "validators": [
( (
"aleksis.core.util.predicates.permission_validator", "aleksis.core.util.predicates.permission_validator",
"chronos.view_timetable_overview", "chronos.view_timetable_overview_rule",
), ),
], ],
}, },
...@@ -41,7 +41,7 @@ MENUS = { ...@@ -41,7 +41,7 @@ MENUS = {
"validators": [ "validators": [
( (
"aleksis.core.util.predicates.permission_validator", "aleksis.core.util.predicates.permission_validator",
"chronos.view_lessons_day", "chronos.view_lessons_day_rule",
), ),
], ],
}, },
...@@ -52,7 +52,7 @@ MENUS = { ...@@ -52,7 +52,7 @@ MENUS = {
"validators": [ "validators": [
( (
"aleksis.core.util.predicates.permission_validator", "aleksis.core.util.predicates.permission_validator",
"chronos.view_substitutions", "chronos.view_substitutions_rule",
), ),
], ],
}, },
......
...@@ -14,39 +14,39 @@ from .util.predicates import has_any_timetable_object, has_room_timetable_perm, ...@@ -14,39 +14,39 @@ from .util.predicates import has_any_timetable_object, has_room_timetable_perm,
view_timetable_overview_predicate = has_person & ( view_timetable_overview_predicate = has_person & (
has_any_timetable_object | has_global_perm("chronos.view_timetable_overview") has_any_timetable_object | has_global_perm("chronos.view_timetable_overview")
) )
add_perm("chronos.view_timetable_overview", view_timetable_overview_predicate) add_perm("chronos.view_timetable_overview_rule", view_timetable_overview_predicate)
# View my timetable # View my timetable
add_perm("chronos.view_my_timetable", has_person) add_perm("chronos.view_my_timetable_rule", has_person)
# View timetable # View timetable
view_timetable_predicate = has_person & has_timetable_perm view_timetable_predicate = has_person & has_timetable_perm
add_perm("chronos.view_timetable", view_timetable_predicate) add_perm("chronos.view_timetable_rule", view_timetable_predicate)
# View all lessons per day # View all lessons per day
view_lessons_day_predicate = has_person & has_global_perm("chronos.view_lessons_day") view_lessons_day_predicate = has_person & has_global_perm("chronos.view_lessons_day")
add_perm("chronos.view_lessons_day", view_lessons_day_predicate) add_perm("chronos.view_lessons_day_rule", view_lessons_day_predicate)
# Edit substition # Edit substition
edit_substitution_predicate = has_person & ( edit_substitution_predicate = has_person & (
has_global_perm("chronos.change_lessonsubstitution") has_global_perm("chronos.change_lessonsubstitution")
| has_object_perm("chronos.change_lessonsubstitution") | has_object_perm("chronos.change_lessonsubstitution")
) )
add_perm("chronos.edit_substitution", edit_substitution_predicate) add_perm("chronos.edit_substitution_rule", edit_substitution_predicate)
# Delete substitution # Delete substitution
delete_substitution_predicate = has_person & ( delete_substitution_predicate = has_person & (
has_global_perm("chronos.delete_lessonsubstitution") has_global_perm("chronos.delete_lessonsubstitution")
| has_object_perm("chronos.delete_lessonsubstitution") | has_object_perm("chronos.delete_lessonsubstitution")
) )
add_perm("chronos.delete_substitution", delete_substitution_predicate) add_perm("chronos.delete_substitution_rule", delete_substitution_predicate)
# View substitutions # View substitutions
view_substitutions_predicate = has_person & ( view_substitutions_predicate = has_person & (
has_global_perm("chronos.view_lessonsubstitution") has_global_perm("chronos.view_lessonsubstitution")
| has_any_object("chronos.view_lessonsubstitution", LessonSubstitution) | has_any_object("chronos.view_lessonsubstitution_rule", LessonSubstitution)
) )
add_perm("chronos.view_substitutions", view_substitutions_predicate) add_perm("chronos.view_substitutions_rule", view_substitutions_predicate)
# View room (timetable) # View room (timetable)
view_room_predicate = has_person & has_room_timetable_perm view_room_predicate = has_person & has_room_timetable_perm
......
...@@ -33,7 +33,7 @@ from .util.date import CalendarWeek, get_weeks_for_year ...@@ -33,7 +33,7 @@ from .util.date import CalendarWeek, get_weeks_for_year
from .util.js import date_unix from .util.js import date_unix
@permission_required("chronos.view_timetable_overview") @permission_required("chronos.view_timetable_overview_rule")
def all_timetables(request: HttpRequest) -> HttpResponse: def all_timetables(request: HttpRequest) -> HttpResponse:
"""View all timetables for persons, groups and rooms.""" """View all timetables for persons, groups and rooms."""
context = {} context = {}
...@@ -48,7 +48,7 @@ def all_timetables(request: HttpRequest) -> HttpResponse: ...@@ -48,7 +48,7 @@ def all_timetables(request: HttpRequest) -> HttpResponse:
return render(request, "chronos/all.html", context) return render(request, "chronos/all.html", context)
@permission_required("chronos.view_my_timetable") @permission_required("chronos.view_my_timetable_rule")
def my_timetable( def my_timetable(
request: HttpRequest, request: HttpRequest,
year: Optional[int] = None, year: Optional[int] = None,
...@@ -109,7 +109,7 @@ def my_timetable( ...@@ -109,7 +109,7 @@ def my_timetable(
return redirect("all_timetables") return redirect("all_timetables")
@permission_required("chronos.view_timetable", fn=get_el_by_pk) @permission_required("chronos.view_timetable_rule", fn=get_el_by_pk)
def timetable( def timetable(
request: HttpRequest, request: HttpRequest,
type_: str, type_: str,
...@@ -195,7 +195,7 @@ def timetable( ...@@ -195,7 +195,7 @@ def timetable(
return render(request, "chronos/timetable.html", context) return render(request, "chronos/timetable.html", context)
@permission_required("chronos.view_lessons_day") @permission_required("chronos.view_lessons_day_rule")
def lessons_day( def lessons_day(
request: HttpRequest, request: HttpRequest,
year: Optional[int] = None, year: Optional[int] = None,
...@@ -235,7 +235,7 @@ def lessons_day( ...@@ -235,7 +235,7 @@ def lessons_day(
@never_cache @never_cache
@permission_required("chronos.edit_substitution", fn=get_substitution_by_id) @permission_required("chronos.edit_substitution_rule", fn=get_substitution_by_id)
def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse: def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse:
"""View a form to edit a substitution lessen.""" """View a form to edit a substitution lessen."""
context = {} context = {}
...@@ -271,7 +271,7 @@ def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse ...@@ -271,7 +271,7 @@ def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse
return render(request, "chronos/edit_substitution.html", context) return render(request, "chronos/edit_substitution.html", context)
@permission_required("chronos.delete_substitution", fn=get_substitution_by_id) @permission_required("chronos.delete_substitution_rule", fn=get_substitution_by_id)
def delete_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse: def delete_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse:
"""Delete a substitution lesson. """Delete a substitution lesson.
...@@ -288,7 +288,7 @@ def delete_substitution(request: HttpRequest, id_: int, week: int) -> HttpRespon ...@@ -288,7 +288,7 @@ def delete_substitution(request: HttpRequest, id_: int, week: int) -> HttpRespon
return redirect("lessons_day_by_date", year=date.year, month=date.month, day=date.day) return redirect("lessons_day_by_date", year=date.year, month=date.month, day=date.day)
@permission_required("chronos.view_substitutions") @permission_required("chronos.view_substitutions_rule")
def substitutions( def substitutions(
request: HttpRequest, request: HttpRequest,
year: Optional[int] = None, year: Optional[int] = None,
......
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