From df744e4240a60be279558277d45deb5c36c46427 Mon Sep 17 00:00:00 2001
From: magicfelix <felix@felix-zauberer.de>
Date: Sat, 6 Aug 2022 20:14:09 +0200
Subject: [PATCH] Redesign documentation table

---
 .../coursebook/LessonDocumentation.vue        |  4 ++
 .../coursebook/LessonDocumentations.vue       | 44 +++++++++++++++++--
 2 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.vue b/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.vue
index 67fc82d38..aa60c9280 100644
--- a/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.vue
+++ b/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.vue
@@ -95,8 +95,12 @@
                 v-model="lessonDocumentationEdit.groupNote"
                 @change="mutate()"
               ></v-textarea>
+              <v-btn right color="primary">
+                Save
+              </v-btn>
             </v-col>
             <v-col cols="12" md="4" lg="3">
+              Personal notes
               <personal-notes
                 :lesson-documentation-id="lessonDocumentationEdit.id"
                 :groups="groups"
diff --git a/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentations.vue b/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentations.vue
index ed8b30182..ca6d81494 100644
--- a/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentations.vue
+++ b/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentations.vue
@@ -39,7 +39,18 @@
     :items="lessonDocumentations"
     @click:row="editLessonDocumentation"
     class="elevation-1"
-  ></v-data-table>
+  >
+    <template v-slot:item.period="{ item }">
+      <span class="text-no-wrap">{{ item.date }} Period {{ item.period }}</span>
+    </template>
+    <template v-slot:item.personalNotes="{ item }">
+      <template v-for="personalNote in item.personalNotes">
+        <v-chip class="ma-1" close v-if="personalNoteString(personalNote)">
+          {{ personalNote.person.fullName }}: {{ personalNoteString(personalNote) }}
+        </v-chip>
+      </template>
+    </template>
+</v-data-table>
 </div></template>
 
 <script>
@@ -52,11 +63,11 @@
       return {
         dialog: false,
         headers: [
-          { text: "Date", value: "date" },
           { text: "Period", value: "period" },
           { text: "Topic", value: "topic" },
           { text: "Homework", value: "homework" },
-          { text: "Group note", value: "groupNote" }
+          { text: "Group note", value: "groupNote" },
+          { text: "Personal notes", value: "personalNotes" }
         ],
         lessonDocumentationEdit: {},
         selectedLessonperiodDatetime: {},
@@ -114,6 +125,33 @@
           let period = item.lessonPeriod ? ", Period " + item.lessonPeriod.period.period : "" // FIXME: Cases without lessonPeriod
           return date_obj.toLocaleDateString(this.$root.languageCode) + period
       },
+      personalNoteString(personalNote) {
+          let personalNoteString = "";
+          if (personalNote.late > 0) {
+              personalNoteString += personalNote.late + " min. ";
+          }
+          if (personalNote.absent) {
+              personalNoteString += "abwesend ";
+          }
+          if (personalNote.excused) {
+              personalNoteString += "entschuldigt ";
+          }
+          if (personalNote.excuseType) {
+              personalNoteString += personalNote.excuseType.name;
+          }
+          if (personalNote.extraMarks.length > 0) {
+              personalNoteString += " (";
+              personalNote.extraMarks.forEach(item => {
+                  personalNoteString += item.name + ", ";
+              });
+              personalNoteString = personalNoteString.substring(0, personalNoteString.length - 2);
+              personalNoteString += ") ";
+          }
+          if (personalNote.remarks) {
+              personalNoteString += "\"" + personalNote.remarks + "\" ";
+          }
+          return personalNoteString;
+      },
     }
   }
 </script>
-- 
GitLab