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
from .models import Absence, Holiday, LessonPeriod, LessonSubstitution, Room, TimePeriod
from .tables import LessonsTable
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.js import date_unix
......@@ -96,24 +97,6 @@ def my_timetable(
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)
def timetable(
request: HttpRequest,
......@@ -222,15 +205,6 @@ def lessons_day(
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)
def edit_substitution(request: HttpRequest, id_: int, week: int) -> HttpResponse:
"""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