From 8f2218106ed0921351acb526be252b90e2f5f277 Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Wed, 8 Jun 2022 13:11:15 +0200
Subject: [PATCH] Create basic Coursebook views

---
 aleksis/apps/alsijil/menus.py |  7 +++++++
 aleksis/apps/alsijil/urls.py  |  2 ++
 aleksis/apps/alsijil/views.py | 20 ++++++++++++++++++--
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/aleksis/apps/alsijil/menus.py b/aleksis/apps/alsijil/menus.py
index 9e259f90b..983e66146 100644
--- a/aleksis/apps/alsijil/menus.py
+++ b/aleksis/apps/alsijil/menus.py
@@ -13,6 +13,13 @@ MENUS = {
                 "aleksis.core.util.core_helpers.has_person",
             ],
             "submenu": [
+                {
+                    "name": _("Coursebook"),
+                    "url": "select_coursebook",
+                    "svg_icon": "mdi:book-education-outline",
+                    "vuetify_icon": "mdi-book-education-outline",
+                    # FIXME: Permissions
+                },
                 {
                     "name": _("Current lesson"),
                     "url": "lesson_period",
diff --git a/aleksis/apps/alsijil/urls.py b/aleksis/apps/alsijil/urls.py
index b00418591..907c6f176 100644
--- a/aleksis/apps/alsijil/urls.py
+++ b/aleksis/apps/alsijil/urls.py
@@ -3,6 +3,8 @@ from django.urls import path
 from . import views
 
 urlpatterns = [
+    path("coursebook/", views.SelectCoursebookView.as_view(), name="select_coursebook"),
+    path("coursebook/<int:pk>/", views.CoursebookView.as_view(), name="coursebook"),
     path("lesson", views.register_object, {"model": "lesson"}, name="lesson_period"),
     path(
         "lesson/<int:year>/<int:week>/<int:id_>",
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 185c4c16e..7fa14bd5c 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -17,7 +17,7 @@ from django.utils.http import url_has_allowed_host_and_scheme
 from django.utils.translation import ugettext as _
 from django.views import View
 from django.views.decorators.cache import never_cache
-from django.views.generic import DetailView
+from django.views.generic import DetailView, TemplateView
 
 import reversion
 from calendarweek import CalendarWeek
@@ -28,7 +28,7 @@ from reversion.views import RevisionMixin
 from rules.contrib.views import PermissionRequiredMixin, permission_required
 
 from aleksis.apps.chronos.managers import TimetableType
-from aleksis.apps.chronos.models import Event, ExtraLesson, Holiday, LessonPeriod, TimePeriod
+from aleksis.apps.chronos.models import Event, ExtraLesson, Holiday, Lesson, LessonPeriod, TimePeriod
 from aleksis.apps.chronos.util.build import build_weekdays
 from aleksis.apps.chronos.util.date import get_weeks_for_year, week_weekday_to_date
 from aleksis.core.mixins import (
@@ -1401,3 +1401,19 @@ class AllRegisterObjectsView(PermissionRequiredMixin, View):
         if self.action_form.is_valid():
             self.action_form.execute()
         return render(request, "alsijil/class_register/all_objects.html", context)
+
+
+class CoursebookView(DetailView):
+    model = Lesson
+    template_name = "alsijil/class_register/coursebook.html"
+    permission_required = ""  # FIXME
+
+
+class SelectCoursebookView(TemplateView):
+    template_name = "alsijil/class_register/select_coursebook.html"
+    permission_required = ""  # FIXME
+
+    def get_context_data(self, **kwargs):
+        context = super().get_context_data(**kwargs)
+        context["lessons"] = self.request.user.person.lessons_as_teacher.all()
+        return context
-- 
GitLab