From ca799cae82629289287c79a3d4c62bb61d6ebb87 Mon Sep 17 00:00:00 2001
From: magicfelix <felix@felix-zauberer.de>
Date: Thu, 18 Apr 2024 16:57:29 +0200
Subject: [PATCH] Rename references on lesson_event to amends

---
 .../components/coursebook/coursebook.graphql  |  2 +-
 .../documentation/DocumentationStatus.vue     |  4 +--
 .../documentation/LessonInformation.vue       | 12 ++++-----
 aleksis/apps/alsijil/models.py                | 16 ++++++------
 aleksis/apps/alsijil/schema/__init__.py       |  2 +-
 aleksis/apps/alsijil/schema/documentation.py  | 14 +++++-----
 aleksis/apps/alsijil/util/predicates.py       | 26 +++++++++----------
 7 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql
index 5814088f6..8444f9e35 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql
@@ -37,7 +37,7 @@ query documentationsForCoursebook(
       id
       name
     }
-    lessonEvent {
+    amends {
       id
       amends {
         id
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue
index 5c6cb5f5c..ad214b49d 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue
@@ -78,13 +78,13 @@ export default {
   },
   methods: {
     updateStatus() {
-      if (this.documentation?.lessonEvent.cancelled) {
+      if (this.documentation?.amends.cancelled) {
         this.currentStatusName = "cancelled";
       } else if (this.documentation.topic) {
         this.currentStatusName = "available";
       } else if (DateTime.now() > this.documentationDateTimeEnd) {
         this.currentStatusName = "missing";
-      } else if (this.documentation?.lessonEvent.amends) {
+      } else if (this.documentation?.amends.amends) {
         this.currentStatusName = "substitution";
       } else if (
         DateTime.now() > this.documentationDateTimeStart &&
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue
index a07172dc5..3222f5c70 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue
@@ -41,11 +41,11 @@ import PersonChip from "aleksis.core/components/person/PersonChip.vue";
       />
       <subject-chip
         v-if="
-          documentation?.lessonEvent?.amends?.subject &&
-          documentation.lessonEvent.amends.subject.id !==
+          documentation?.amends?.amends?.subject &&
+          documentation.amends.amends.subject.id !==
             documentation.subject.id
         "
-        :subject="documentation.lessonEvent.amends.subject"
+        :subject="documentation.amends.amends.subject"
         v-bind="compact ? dialogActivator.attrs : {}"
         v-on="compact ? dialogActivator.on : {}"
         class="text-decoration-line-through"
@@ -102,10 +102,10 @@ export default {
     },
     amendedTeachers() {
       if (
-        this.documentation?.lessonEvent?.amends?.teachers &&
-        this.documentation.lessonEvent.amends.teachers.length
+        this.documentation?.amends?.amends?.teachers &&
+        this.documentation.amends.amends.teachers.length
       ) {
-        return this.documentation.lessonEvent.amends.teachers.filter(
+        return this.documentation.amends.amends.teachers.filter(
           (at) => !this.documentation.teachers.includes((t) => t.id === at.id),
         );
       }
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index 4cfa41cda..930bbc3d5 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -486,17 +486,17 @@ class Documentation(CalendarEvent):
     def get_subject(self) -> str:
         if self.subject:
             return self.subject
-        if self.lesson_event:
-            if self.lesson_event.subject:
-                return self.lesson_event.subject
-            if self.lesson_event.course:
-                return self.lesson_event.course.subject
+        if self.amends:
+            if self.amends.subject:
+                return self.amends.subject
+            if self.amends.course:
+                return self.amends.course.subject
         if self.course:
             return self.course.subject
 
     def get_groups(self) -> QuerySet[Group]:
-        if self.lesson_event:
-            return self.lesson_event.actual_groups
+        if self.amends:
+            return self.amends.actual_groups
         if self.course:
             return self.course.groups.all()
 
@@ -589,7 +589,7 @@ class Documentation(CalendarEvent):
                 docs.append(
                     cls(
                         pk=f"DUMMY;{event_reference_obj.id};{event['DTSTART'].dt.isoformat()};{event['DTEND'].dt.isoformat()}",
-                        lesson_event=event_reference_obj,
+                        amends=event_reference_obj,
                         course=course,
                         subject=subject,
                         datetime_start=event["DTSTART"].dt,
diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py
index d762a9874..aae1b7060 100644
--- a/aleksis/apps/alsijil/schema/__init__.py
+++ b/aleksis/apps/alsijil/schema/__init__.py
@@ -39,7 +39,7 @@ class Query(graphene.ObjectType):
 
     def resolve_documentations_by_course_id(root, info, course_id, **kwargs):
         documentations = Documentation.objects.filter(
-            Q(course__pk=course_id) | Q(lesson_event__course__pk=course_id)
+            Q(course__pk=course_id) | Q(amends__course__pk=course_id)
         )
         return documentations
 
diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py
index 52b92549f..c458ec135 100644
--- a/aleksis/apps/alsijil/schema/documentation.py
+++ b/aleksis/apps/alsijil/schema/documentation.py
@@ -28,7 +28,7 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
         fields = (
             "id",
             "course",
-            "lesson_event",
+            "amends",
             "subject",
             "topic",
             "homework",
@@ -55,12 +55,12 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
     def resolve_teachers(root: Documentation, info, **kwargs):
         if not str(root.pk).startswith("DUMMY") and hasattr(root, "teachers"):
             return root.teachers
-        elif root.lesson_event.amends:
-            if root.lesson_event.teachers:
-                return root.lesson_event.teachers
+        elif root.amends.amends:
+            if root.amends.teachers:
+                return root.amends.teachers
             else:
-                return root.lesson_event.amends.teachers
-        return root.lesson_event.teachers
+                return root.amends.amends.teachers
+        return root.amends.teachers
 
     @staticmethod
     def resolve_future_notice(root: Documentation, info, **kwargs):
@@ -148,7 +148,7 @@ class DocumentationBatchCreateOrUpdateMutation(graphene.Mutation):
                 obj = Documentation.objects.create(
                     datetime_start=datetime_start,
                     datetime_end=datetime_end,
-                    lesson_event=lesson_event,
+                    amends=lesson_event,
                     course=course,
                     subject=subject,
                     topic=doc.topic or "",
diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index 33bda1e7d..652a4fa78 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -390,13 +390,13 @@ def is_documentation_teacher(user: User, obj: Documentation):
     if obj:
         if not str(obj.pk).startswith("DUMMY") and hasattr(obj, "teachers"):
             teachers = obj.teachers
-        elif obj.lesson_event.amends:
-            if obj.lesson_event.teachers:
-                teachers = obj.lesson_event.teachers
+        elif obj.amends.amends:
+            if obj.amends.teachers:
+                teachers = obj.amends.teachers
             else:
-                teachers = obj.lesson_event.amends.teachers
+                teachers = obj.amends.amends.teachers
         else:
-            teachers = obj.lesson_event.teachers
+            teachers = obj.amends.teachers
         return user.person in teachers.all()
     return False
 
@@ -407,11 +407,11 @@ def can_view_documentation(user: User, obj: Documentation):
     if obj:
         if is_documentation_teacher(user, obj):
             return True
-        if obj.lesson_event:
+        if obj.amends:
             return (
-                is_lesson_event_teacher(user, obj.lesson_event)
-                | is_lesson_event_member(user, obj.lesson_event)
-                | is_lesson_event_group_owner(user, obj.lesson_event)
+                is_lesson_event_teacher(user, obj.amends)
+                | is_lesson_event_member(user, obj.amends)
+                | is_lesson_event_group_owner(user, obj.amends)
             )
         if obj.course:
             return is_course_teacher(user, obj.course)
@@ -425,7 +425,7 @@ def can_view_any_documentation(user: User):
 
     return Documentation.objects.filter(
         Q(teachers=user.person)
-        | Q(lesson_event__in=allowed_lesson_events)
+        | Q(amends__in=allowed_lesson_events)
         | Q(course__teachers=user.person)
     ).exists()
 
@@ -436,9 +436,9 @@ def can_edit_documentation(user: User, obj: Documentation):
     if obj:
         if is_documentation_teacher(user, obj):
             return True
-        if obj.lesson_event:
-            return is_lesson_event_teacher(user, obj.lesson_event) | is_lesson_event_group_owner(
-                user, obj.lesson_event
+        if obj.amends:
+            return is_lesson_event_teacher(user, obj.amends) | is_lesson_event_group_owner(
+                user, obj.amends
             )
     return False
 
-- 
GitLab