Skip to content
Snippets Groups Projects
Commit 78887b91 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch '82-move-get_-_by_pk-fuctions-to-util' into 'master'

Resolve "Move get_*_by_pk functions to util"

Closes #82

See merge request !57
parents b3b28861 9ce38363
No related branches found
No related tags found
1 merge request!57Resolve "Move get_*_by_pk functions to util"
from typing import Optional
from django.http import HttpRequest, HttpResponseNotFound
from django.shortcuts import get_object_or_404
from aleksis.core.models import Person, Group
from ..managers import TimetableType
from ..models import LessonPeriod, LessonSubstitution, Room
def get_el_by_pk(
request: HttpRequest,
type_: str,
pk: int,
year: Optional[int] = None,
week: Optional[int] = None,
regular: Optional[str] = None,
):
if type_ == TimetableType.GROUP.value:
return get_object_or_404(Group, pk=pk)
elif type_ == TimetableType.TEACHER.value:
return get_object_or_404(Person, pk=pk)
elif type_ == TimetableType.ROOM.value:
return get_object_or_404(Room, pk=pk)
else:
return HttpResponseNotFound()
def get_substitution_by_id(request: HttpRequest, id_: int, week: int):
lesson_period = get_object_or_404(LessonPeriod, pk=id_)
wanted_week = lesson_period.lesson.get_calendar_week(week)
return LessonSubstitution.objects.filter(
week=wanted_week.week, lesson_period=lesson_period
).first()
...@@ -20,6 +20,7 @@ from .managers import TimetableType ...@@ -20,6 +20,7 @@ from .managers import TimetableType
from .models import Absence, Holiday, LessonPeriod, LessonSubstitution, Room, TimePeriod from .models import Absence, Holiday, LessonPeriod, LessonSubstitution, Room, TimePeriod
from .tables import LessonsTable from .tables import LessonsTable
from .util.build import build_substitutions_list, build_timetable, build_weekdays from .util.build import build_substitutions_list, build_timetable, build_weekdays
from .util.chronos_helpers import get_el_by_pk, get_substitution_by_id
from .util.date import CalendarWeek, get_weeks_for_year from .util.date import CalendarWeek, get_weeks_for_year
from .util.js import date_unix from .util.js import date_unix
...@@ -96,24 +97,6 @@ def my_timetable( ...@@ -96,24 +97,6 @@ def my_timetable(
return redirect("all_timetables") return redirect("all_timetables")
def get_el_by_pk(
request: HttpRequest,
type_: str,
pk: int,
year: Optional[int] = None,
week: Optional[int] = None,
regular: Optional[str] = None,
):
if type_ == TimetableType.GROUP.value:
return get_object_or_404(Group, pk=pk)
elif type_ == TimetableType.TEACHER.value:
return get_object_or_404(Person, pk=pk)
elif type_ == TimetableType.ROOM.value:
return get_object_or_404(Room, pk=pk)
else:
return HttpResponseNotFound()
@permission_required("chronos.view_timetable", fn=get_el_by_pk) @permission_required("chronos.view_timetable", fn=get_el_by_pk)
def timetable( def timetable(
request: HttpRequest, request: HttpRequest,
...@@ -222,15 +205,6 @@ def lessons_day( ...@@ -222,15 +205,6 @@ def lessons_day(
return render(request, "chronos/lessons_day.html", context) return render(request, "chronos/lessons_day.html", context)
def get_substitution_by_id(request: HttpRequest, id_: int, week: int):
lesson_period = get_object_or_404(LessonPeriod, pk=id_)
wanted_week = lesson_period.lesson.get_calendar_week(week)
return LessonSubstitution.objects.filter(
week=wanted_week.week, lesson_period=lesson_period
).first()
@permission_required("chronos.edit_substitution", fn=get_substitution_by_id) @permission_required("chronos.edit_substitution", 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."""
......
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