From 4e59fa1c6c2555aa914ff244e133d6f0a9e9c075 Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Tue, 21 May 2024 11:09:42 +0200
Subject: [PATCH] Create PersonalNotes component and mixin

---
 .../absences/ManageStudentsDialog.vue         |  9 ++++++++
 .../personal_notes/PersonalNotes.vue          | 21 +++++++++++++++++++
 .../personalNoteRelatedMixin.js               | 19 +++++++++++++++++
 3 files changed, 49 insertions(+)
 create mode 100644 aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/PersonalNotes.vue
 create mode 100644 aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/personalNoteRelatedMixin.js

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
index 824f3da29..f0e8a1959 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
@@ -8,11 +8,13 @@ import documentationPartMixin from "../documentation/documentationPartMixin";
 import LessonInformation from "../documentation/LessonInformation.vue";
 import { updateParticipationStatuses } from "./participationStatus.graphql";
 import SlideIterator from "aleksis.core/components/generic/SlideIterator.vue";
+import PersonalNotes from "../personal_notes/PersonalNotes.vue";
 
 export default {
   name: "ManageStudentsDialog",
   extends: MobileFullscreenDialog,
   components: {
+    PersonalNotes,
     AbsenceReasonChip,
     AbsenceReasonGroupSelect,
     CancelButton,
@@ -170,6 +172,13 @@ export default {
               @input="sendToServer(item, 'absenceReason', $event)"
             />
           </v-card-text>
+          <v-divider inset />
+          <v-card-text>
+            <personal-notes
+              v-bind="documentationPartProps"
+              :participation="item"
+            />
+          </v-card-text>
         </template>
       </slide-iterator>
     </template>
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/PersonalNotes.vue b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/PersonalNotes.vue
new file mode 100644
index 000000000..c74dc4d6b
--- /dev/null
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/PersonalNotes.vue
@@ -0,0 +1,21 @@
+<script setup>
+import SecondaryActionButton from "aleksis.core/components/generic/buttons/SecondaryActionButton.vue";
+import ExtraMarksNote from "./ExtraMarksNote.vue";
+import NoteNote from "./NoteNote.vue";
+</script>
+<script>
+import personalNoteRelatedMixin from "./personalNoteRelatedMixin";
+
+export default {
+  name: "PersonalNotes",
+  mixins: [personalNoteRelatedMixin],
+};
+</script>
+
+<template>
+  <div>
+
+  </div>
+</template>
+
+<style scoped></style>
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/personalNoteRelatedMixin.js b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/personalNoteRelatedMixin.js
new file mode 100644
index 000000000..0eda6c4ca
--- /dev/null
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/personalNoteRelatedMixin.js
@@ -0,0 +1,19 @@
+import documentationPartMixin from "../documentation/documentationPartMixin";
+
+export default {
+  mixins: [documentationPartMixin],
+  props: {
+    participation: {
+      type: Object,
+      required: true,
+    },
+  },
+  computed: {
+    personalNoteRelatedProps() {
+      return {
+        ...this.documentationPartProps,
+        participation: this.participation,
+      };
+    },
+  },
+};
-- 
GitLab