diff --git a/aleksis/apps/alsijil/assets/components/coursebook/CourseBook.graphql b/aleksis/apps/alsijil/assets/components/coursebook/CourseBook.graphql
index 78e83b800fc0dd9877a3c300921a3da9f15fb2c6..9e9c68b020425ab906eeec3b62895757e3b3895e 100644
--- a/aleksis/apps/alsijil/assets/components/coursebook/CourseBook.graphql
+++ b/aleksis/apps/alsijil/assets/components/coursebook/CourseBook.graphql
@@ -1,5 +1,6 @@
 query CourseBook($lessonId: ID!) {
   excuseTypes {
+    id
     name
     shortName
   }
@@ -55,17 +56,20 @@ query CourseBook($lessonId: ID!) {
       absent
       excused
       excuseType {
+        id
         name
         shortName
       }
       remarks
       extraMarks {
+        id
         name
         shortName
       }
     }
   }
   extraMarks {
+    id
     name
     shortName
   }
diff --git a/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.graphql b/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.graphql
index ee2ec13a30cbeb019915bf8bdd83770bb1b15363..89b5f83edd2a0e040ffa1f4de44ef37bb6fd6f54 100644
--- a/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.graphql
+++ b/aleksis/apps/alsijil/assets/components/coursebook/LessonDocumentation.graphql
@@ -16,11 +16,13 @@ mutation UpdateOrCreateLessonDocumentation($year:Int!, $week:Int!, $lessonPeriod
         absent
         excused
         excuseType {
+          id
           name
           shortName
         }
         remarks
         extraMarks {
+          id
           name
           shortName
         }
diff --git a/aleksis/apps/alsijil/assets/components/coursebook/PersonalNotes.vue b/aleksis/apps/alsijil/assets/components/coursebook/PersonalNotes.vue
index ba1d2c3f69be901bcd0a7be5540e31edea04d879..b2c8da1731d247a3219f42ab4b862c47e442d4a6 100644
--- a/aleksis/apps/alsijil/assets/components/coursebook/PersonalNotes.vue
+++ b/aleksis/apps/alsijil/assets/components/coursebook/PersonalNotes.vue
@@ -70,16 +70,15 @@
               v-model="editedExcuseType"
               :items="excuseTypes"
               item-text="name"
-              item-value="shortName"
+              return-object
               :disabled="editedPersonID === ID_NO_PERSON || !editedAbsent || !editedExcused"
             ></v-select>
-            <!-- FIXME: get extra mark itself as value -->
             <v-select
               label="Extra Marks"
               v-model="editedExtraMarks"
               :items="extraMarks"
               item-text="name"
-              item-value="valueOf"
+              return-object
               :disabled="editedPersonID === ID_NO_PERSON"
               multiple
               chips
@@ -180,14 +179,18 @@ export default {
                 return
             }
 
+            let editedExcuseTypeID = (this.editedExcuseType) ? this.editedExcuseType.id : null;
+            let editedExtraMarksIDs = [];
+            this.editedExtraMarks.forEach(item => {editedExtraMarksIDs.push(item.id);});
+
             // We save the user input in case of an error
             const variables = {
                 "personId": this.editedPersonID,
                 "late": this.editedTardiness,
                 "absent": this.editedAbsent,
                 "excused": this.editedExcused,
-                "excuseType": this.editedExcuseType,
-                "extraMarks": this.editedExtraMarks,
+                "excuseType": editedExcuseTypeID,
+                "extraMarks": editedExtraMarksIDs,
                 "remarks": this.editedRemarks,
                 "lessonDocumentation": this.lessonDocumentationId,
             }