Skip to content
Snippets Groups Projects
Verified Commit 82f5c040 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Simplify URL template generation for week select and make it more resilient

parent 003f17ef
No related branches found
No related tags found
1 merge request!73Resolve "Add week select to week view"
Pipeline #3274 passed
......@@ -11,7 +11,13 @@ urlpatterns = [
),
path("week/", views.week_view, name="week_view"),
path("week/<int:year>/<int:week>/", views.week_view, name="week_view_by_week"),
path("week/year/cw/", views.week_view, name="week_view_placeholders"),
path("week/<str:type_>/<int:id_>/", views.week_view, name="week_view"),
path(
"week/year/cw/<str:type_>/<int:id_>/",
views.week_view,
name="week_view_placeholders",
),
path(
"week/<int:year>/<int:week>/<str:type_>/<int:id_>/",
views.week_view,
......
from typing import List
def append_if_all(iterable: List, *args) -> List:
"""Append args to a list if all args are true-like."""
if all(args):
for a in args:
iterable.append(a)
return iterable
......@@ -13,7 +13,6 @@ from django_tables2 import SingleTableView
from reversion.views import RevisionMixin
from rules.contrib.views import PermissionRequiredMixin
from aleksis.apps.alsijil.util import append_if_all
from aleksis.apps.chronos.managers import TimetableType
from aleksis.apps.chronos.models import LessonPeriod
from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk
......@@ -308,16 +307,15 @@ def week_view(
week_next = wanted_week + 1
args_prev = [week_prev.year, week_prev.week]
args_next = [week_next.year, week_next.week]
args_dest = [wanted_week.year, wanted_week.week]
append_if_all(args_prev, type_, id_)
append_if_all(args_next, type_, id_)
append_if_all(args_dest, type_, id_)
args_dest = []
if type_ and id_:
args_prev += [type_.value, id_]
args_next += [type_.value, id_]
args_dest += [type_.value, id_]
context["week_select"] = {
"year": wanted_week.year,
"dest": reverse("week_view_by_week", args=args_dest)
.replace(str(wanted_week.year), "year")
.replace(str(wanted_week.week), "cw"),
"dest": reverse("week_view_placeholders", args=args_dest),
}
context["url_prev"] = reverse("week_view_by_week", args=args_prev)
......
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