diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
index 4e673db88090f473f2bc036bd128881327d21fc3..1403a38bb524c7fa407ba94f8193cbda00e8b6ba 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
@@ -34,6 +34,7 @@
         @init="transition"
         :key="'day-' + date"
         ref="days"
+        :extra-marks="extraMarks"
       />
       <coursebook-loader />
 
@@ -73,6 +74,7 @@ import { documentationsForCoursebook } from "./coursebook.graphql";
 import CoursebookFilters from "./CoursebookFilters.vue";
 import CoursebookLoader from "./CoursebookLoader.vue";
 import CoursebookEmptyMessage from "./CoursebookEmptyMessage.vue";
+import { extraMarks } from "../extra_marks/extra_marks.graphql";
 
 export default {
   name: "Coursebook",
@@ -132,8 +134,15 @@ export default {
       initDate: false,
       currentDate: "",
       hashUpdater: false,
+      extraMarks: [],
     };
   },
+  apollo: {
+    extraMarks: {
+      query: extraMarks,
+      update: (data) => data.items,
+    },
+  },
   computed: {
     // Assertion: Should only fire on page load or selection change.
     //            Resets date range.
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue
index 2f15c3fd031c62ff9fc96cf5c35042f2274d3321..c4a677c9f5f72227537f7d842baa51902d9859ac 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue
@@ -12,6 +12,7 @@
         >
           <documentation-modal
             :documentation="doc"
+            :extra-marks="extraMarks"
             :affected-query="lastQuery"
           />
         </v-list-item>
@@ -45,6 +46,10 @@ export default {
       required: false,
       default: false,
     },
+    extraMarks: {
+      type: Array,
+      required: true,
+    },
   },
   emits: ["init"],
   methods: {
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue
index 460f39f97fc15b61d0476dd99ed33d29cf43029c..c10a5eb55cc662a0bd8ea6d8f3e26c61a98c0579 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue
@@ -4,7 +4,7 @@
   <mobile-fullscreen-dialog v-model="popup" max-width="500px">
     <template #activator="activator">
       <!-- list view -> activate dialog -->
-      <documentation compact v-bind="$attrs" :dialog-activator="activator" />
+      <documentation compact v-bind="$attrs" :dialog-activator="activator" :extra-marks="extraMarks" />
     </template>
     <!-- dialog view -> deactivate dialog -->
     <!-- cancel | save (through lesson-summary) -->
@@ -27,5 +27,11 @@ export default {
       popup: false,
     };
   },
+  props: {
+    extraMarks: {
+      type: Array,
+      required: true,
+    },
+  },
 };
 </script>
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js
index 88a8e852f8cc6e333303034fb5f590d174708886..35243ee3ca5e055c0d2fd5375fba614bbbd6e246 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js
@@ -33,6 +33,13 @@ export default {
       required: false,
       default: () => ({ attrs: {}, on: {} }),
     },
+    /**
+     * Once loaded list of all extra marks to avoid excessive network and database queries
+     */
+    extraMarks: {
+      type: Array,
+      required: true,
+    },
   },
 
   computed: {
@@ -46,6 +53,7 @@ export default {
         compact: this.compact,
         dialogActivator: this.dialogActivator,
         affectedQuery: this.affectedQuery,
+        extraMarks: this.extraMarks,
       };
     },
   },
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue
index d94a02f73a9f895cb475c6821d090d146a2ef758..177b21e803f073e7965815662a00727b8b8a24e4 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue
@@ -13,17 +13,6 @@ export default {
       required: true,
     },
   },
-  data() {
-    return {
-      extraMarks: [],
-    };
-  },
-  apollo: {
-    extraMarks: {
-      query: extraMarks,
-      update: (data) => data.items,
-    },
-  },
 };
 </script>