diff --git a/aleksis/apps/alsijil/urls.py b/aleksis/apps/alsijil/urls.py
index 49ccfd90cbac2799fa1dd46af975c935bcfd8beb..7e7139c6c26fe7aa600b6b311b55ae731389c13b 100644
--- a/aleksis/apps/alsijil/urls.py
+++ b/aleksis/apps/alsijil/urls.py
@@ -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,
diff --git a/aleksis/apps/alsijil/util.py b/aleksis/apps/alsijil/util.py
deleted file mode 100644
index da358059242d744e0e1783b88ca2b5fd96d6577f..0000000000000000000000000000000000000000
--- a/aleksis/apps/alsijil/util.py
+++ /dev/null
@@ -1,9 +0,0 @@
-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
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index f97509307b7f46c885dc9fa0c559250e52783db8..9c90ede28c1db9d34a2e7f1bff53e89cb53e3757 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -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)