diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
index ecf771d40c7bba48bc9daec58248e853c3379181..21b903a2fd2894249dcd2398518c4e6f9bab96e8 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
@@ -53,6 +53,7 @@
           :is="itemComponent"
           :extra-marks="extraMarks"
           :absence-reasons="absenceReasons"
+          :subjects="subjects"
           :documentation="item"
           :affected-query="lastQuery"
           :value="(selectedParticipations[item.id] ??= [])"
@@ -87,6 +88,7 @@ import { extraMarks } from "../extra_marks/extra_marks.graphql";
 import DocumentationLoader from "./documentation/DocumentationLoader.vue";
 import sendToServerMixin from "./absences/sendToServerMixin";
 import { absenceReasons } from "./absences/absenceReasons.graphql";
+import { subjects } from "aleksis.apps.cursus/components/subject.graphql";
 
 export default {
   name: "Coursebook",
@@ -157,6 +159,7 @@ export default {
       hashUpdater: false,
       extraMarks: [],
       absenceReasons: [],
+      subjects: [],
       selectedParticipations: {},
     };
   },
@@ -169,6 +172,10 @@ export default {
       query: absenceReasons,
       update: (data) => data.items,
     },
+    subjects: {
+      query: subjects,
+      update: (data) => data.items,
+    },
   },
   computed: {
     // Assertion: Should only fire on page load or selection change.
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue
index 177e886f5b7d8e73eb66299738366e9cb22f496a..5b5dd101b76288cd1b09ba5418a452d70a9425fa 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue
@@ -10,6 +10,7 @@
         :dialog-activator="activator"
         :extra-marks="extraMarks"
         :absence-reasons="absenceReasons"
+        :subjects="subjects"
       />
     </template>
     <!-- dialog view -> deactivate dialog -->
@@ -18,6 +19,7 @@
       v-bind="$attrs"
       :extra-marks="extraMarks"
       :absence-reasons="absenceReasons"
+      :subjects="subjects"
       @close="popup = false"
     />
   </mobile-fullscreen-dialog>
@@ -47,6 +49,10 @@ export default {
       type: Array,
       required: true,
     },
+    subjects: {
+      type: Array,
+      required: true,
+    },
   },
 };
 </script>
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue
index 2f692025e83d2cf3ed951aec38f5e0c34cb59572..a104d84425d8317091d649ce7b0b88919fdf9c52 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue
@@ -63,8 +63,8 @@ import SubjectChipSelectField from "aleksis.apps.cursus/components/SubjectChipSe
       <template v-if="documentation.subject">
         <subject-chip-select-field
           v-if="documentation.canEdit"
+          :items="subjects"
           :value="documentation.subject"
-          :enable-create="false"
           :disabled="loading"
           :loading="loading"
           @input="editSubject"
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js
index 886803b433be0a1372cf2bd27620700b49d24f2f..2b30e38d57a9f803b56a4e0ea1c8f7c5c27dc49f 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js
@@ -47,6 +47,13 @@ export default {
       type: Array,
       required: true,
     },
+    /**
+     * Once loaded list of subjects to avoid excessive network and database queries
+     */
+    subjects: {
+      type: Array,
+      required: true,
+    },
   },
 
   computed: {
@@ -62,6 +69,7 @@ export default {
         affectedQuery: this.affectedQuery,
         extraMarks: this.extraMarks,
         absenceReasons: this.absenceReasons,
+        subjects: this.subjects,
       };
     },
   },