From a71d04c2e65f58e147eb6a65c951e45fb0e54914 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sat, 27 May 2023 12:53:24 +0200
Subject: [PATCH] Add SupervisionEvent model for supervisions

---
 aleksis/apps/chronos/models.py                  | 17 +++++++++++++++++
 .../chronos/lesson_event_description.txt        |  4 ++++
 .../chronos/supervision_event_description.txt   |  2 ++
 3 files changed, 23 insertions(+)
 create mode 100644 aleksis/apps/chronos/templates/chronos/lesson_event_description.txt
 create mode 100644 aleksis/apps/chronos/templates/chronos/supervision_event_description.txt

diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 8035ad4d..67d5d0e3 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -1380,6 +1380,7 @@ class LessonEvent(CalendarEvent):
         Group,
         related_name="lesson_events",
         verbose_name=_("Groups"),
+        blank=True,
     )
 
     rooms = models.ManyToManyField(
@@ -1477,3 +1478,19 @@ class LessonEvent(CalendarEvent):
     class Meta:
         verbose_name = _("Lesson Event")
         verbose_name_plural = _("Lesson Events")
+
+
+class SupervisionEvent(LessonEvent):
+    name = "supervision"
+    verbose_name = _("Supervisions")
+
+
+    @classmethod
+    def value_title(cls, reference_object: "LessonEvent") -> str:
+        """Get the title of the event."""
+
+        return _("Supervision: {}").format(reference_object.room_names)
+
+    @classmethod
+    def value_description(cls, reference_object: "LessonEvent") -> str:
+        return render_to_string("chronos/supervision_event_description.txt", {"event": reference_object})
\ No newline at end of file
diff --git a/aleksis/apps/chronos/templates/chronos/lesson_event_description.txt b/aleksis/apps/chronos/templates/chronos/lesson_event_description.txt
new file mode 100644
index 00000000..db81aa0a
--- /dev/null
+++ b/aleksis/apps/chronos/templates/chronos/lesson_event_description.txt
@@ -0,0 +1,4 @@
+{% load i18n %}{% trans "Groups" %}: {{ event.group_names }}
+{% trans "Subject" %}: {{ event.subject }}
+{% trans "Teachers" %}: {{ event.teacher_names }}
+{% trans "Rooms" %}: {{ event.room_names }}
\ No newline at end of file
diff --git a/aleksis/apps/chronos/templates/chronos/supervision_event_description.txt b/aleksis/apps/chronos/templates/chronos/supervision_event_description.txt
new file mode 100644
index 00000000..d2f311f2
--- /dev/null
+++ b/aleksis/apps/chronos/templates/chronos/supervision_event_description.txt
@@ -0,0 +1,2 @@
+{% load i18n %}{% trans "Teachers" %}: {{ event.teacher_names }}
+{% trans "Areas" %}: {{ event.room_names }}
\ No newline at end of file
-- 
GitLab