Skip to content
Snippets Groups Projects
Commit aa68ceac authored by Julian's avatar Julian
Browse files

Load subjects once for the entire coursebook

parent d382ce56
No related branches found
No related tags found
1 merge request!409Load subjects once for the entire coursebook
Pipeline #192590 passed with warnings
......@@ -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.
......
......@@ -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>
......@@ -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"
......
......@@ -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,
};
},
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment