From 912a2479f91d9e5ed5aa0fe5bbd56b3d0caf914d Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sat, 18 Jan 2020 17:51:53 +0100
Subject: [PATCH] Add base structure for "My timetable"

---
 aleksis/apps/chronos/menus.py |  2 +-
 aleksis/apps/chronos/urls.py  |  2 ++
 aleksis/apps/chronos/views.py | 15 +++++++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/aleksis/apps/chronos/menus.py b/aleksis/apps/chronos/menus.py
index 201cc5e3..b82f3556 100644
--- a/aleksis/apps/chronos/menus.py
+++ b/aleksis/apps/chronos/menus.py
@@ -14,7 +14,7 @@ MENUS = {
             "submenu": [
                 {
                     "name": _("My timetable"),
-                    "url": "timetable",
+                    "url": "my_timetable",
                     "icon": "person",
                     "validators": ["menu_generator.validators.is_authenticated"],
                 },
diff --git a/aleksis/apps/chronos/urls.py b/aleksis/apps/chronos/urls.py
index a3787c6a..4716b2a8 100644
--- a/aleksis/apps/chronos/urls.py
+++ b/aleksis/apps/chronos/urls.py
@@ -4,6 +4,8 @@ from . import views
 
 urlpatterns = [
     path("", views.all, name="all_timetables"),
+    path("timetable/my/", views.my_timetable, name="my_timetable"),
+    path("timetable/my/<int:year>/<int:week>/", views.my_timetable, name="my_timetable"),
     path("timetable/<str:type_>/<int:pk>/", views.timetable, name="timetable"),
     path("timetable/<str:type_>/<int:pk>/<int:year>/<int:week>/", views.timetable, name="timetable_by_week"),
     path("timetable/<str:type_>/<int:pk>/<str:regular>/", views.timetable, name="timetable_regular"),
diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py
index cc3c6da8..bdb68d00 100644
--- a/aleksis/apps/chronos/views.py
+++ b/aleksis/apps/chronos/views.py
@@ -77,6 +77,21 @@ def all(request: HttpRequest) -> HttpResponse:
     return render(request, 'chronos/quicklaunch.html', context)
 
 
+@login_required
+def my_timetable(
+    request: HttpRequest, year: Optional[int] = None, month: Optional[int] = None, day: Optional[int] = None
+) -> HttpResponse:
+    context = {}
+
+    if day:
+        wanted_day = timezone.datetime(year=year, month=month, day=day).date()
+        wanted_day = get_next_relevant_day(wanted_day)
+    else:
+        wanted_day = get_next_relevant_day(timezone.now().date(), datetime.now().time())
+
+    return render(request, "chronos/myplan.html", context)
+
+
 @login_required
 def timetable(
     request: HttpRequest, type_: str, pk: int, year: Optional[int] = None, week: Optional[int] = None, regular: Optional[str] = None
-- 
GitLab