From 23f8c49256616578600cd162f7ff213c4faa0b0f Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sat, 2 Sep 2023 17:21:11 +0200
Subject: [PATCH] Fix displaying of subjects in lesson feed

(cherry picked from commit ba21458f135193504816e1cdc39556e8f3742d34)
---
 .../frontend/components/LessonEventOldNew.vue    |  2 +-
 .../frontend/components/LessonEventSubject.vue   |  6 +++---
 aleksis/apps/chronos/models.py                   | 16 ++++++++++------
 3 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/aleksis/apps/chronos/frontend/components/LessonEventOldNew.vue b/aleksis/apps/chronos/frontend/components/LessonEventOldNew.vue
index 11634a63..774dfb8a 100644
--- a/aleksis/apps/chronos/frontend/components/LessonEventOldNew.vue
+++ b/aleksis/apps/chronos/frontend/components/LessonEventOldNew.vue
@@ -29,7 +29,7 @@ export default {
         ><lesson-event-link-iterator :items="oldItems" :attr="attr"
       /></span>
       <!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
-      <span>→</span>
+      <span> → </span>
       <lesson-event-link-iterator :items="newItems" :attr="attr" />
     </span>
     <span v-else-if="newItems.length > 0">
diff --git a/aleksis/apps/chronos/frontend/components/LessonEventSubject.vue b/aleksis/apps/chronos/frontend/components/LessonEventSubject.vue
index d102c9dd..9a739936 100644
--- a/aleksis/apps/chronos/frontend/components/LessonEventSubject.vue
+++ b/aleksis/apps/chronos/frontend/components/LessonEventSubject.vue
@@ -26,13 +26,13 @@ export default {
         {{ event.meta.amends.subject[attr] }}</span
       >
       <!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
-      <span>→</span>
-      {{ event.meta.subject[attr] }}
+      <span> → </span>
+      <span>{{ event.meta.subject[attr] }}</span>
     </span>
     <span v-else-if="event.meta.subject">
       {{ event.meta.subject[attr] }}
     </span>
-    <span v-else-if="event.amended && event.amends.subject">
+    <span v-else-if="event.meta.amended && event.meta.amends.subject">
       {{ event.meta.amends.subject[attr] }}
     </span>
     <span v-else>
diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index d48acfb6..7a4701cb 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -1436,31 +1436,35 @@ class LessonEvent(CalendarEvent):
     @property
     def subject_name_with_amends(self: LessonEvent) -> str:
         """Get formatted subject name (including amends)."""
-        my_subject = self.subject.name
+        my_subject = self.subject.name if self.subject else ""
         amended_subject = self.amends.subject.name if self.amends else ""
 
         if my_subject and amended_subject:
             return _("{} (instead of {})").format(my_subject, amended_subject)
         elif not my_subject and amended_subject:
             return amended_subject
-        return my_subject
+        elif my_subject:
+            return my_subject
+        return _("Lesson")
 
     @classmethod
     def value_title(cls, reference_object: LessonEvent, request: HttpRequest | None = None) -> str:
         """Get the title of the lesson event."""
         if reference_object.title:
             return reference_object.title
-        elif reference_object.subject:
-            title = reference_object.subject.name
+        elif reference_object.subject or (
+            reference_object.amends and reference_object.amends.subject
+        ):
+            title = reference_object.subject_name_with_amends
             if request and request.user.person in reference_object.teachers.all():
                 title += " · " + reference_object.group_names
             elif request:
-                title += " · " + reference_object.teacher_names
+                title += " · " + reference_object.teacher_names_with_amends
             else:
                 title += f" · {reference_object.group_names} · {reference_object.teacher_names}"
 
             if reference_object.rooms.all().exists():
-                title += " · " + reference_object.room_names
+                title += " · " + reference_object.room_names_with_amends
             return title
 
         return _("Lesson")
-- 
GitLab