Skip to content
Snippets Groups Projects
Commit 8a757f6a authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch '1090-foreignkey-less-chipselectfield' into 'master'

Load subjects once for the entire coursebook

See merge request !409
parents ed370b48 aa68ceac
No related branches found
No related tags found
1 merge request!409Load subjects once for the entire coursebook
Pipeline #192658 failed
......@@ -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