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

Make mutation batchable

parent fff690ea
No related branches found
No related tags found
1 merge request!360Resolve "Add absence management to course book student dialog"
...@@ -44,29 +44,29 @@ export default { ...@@ -44,29 +44,29 @@ export default {
}, },
}, },
methods: { methods: {
sendToServer(participation, field, value) { sendToServer(participations, field, value) {
if (field !== "absenceReason") return; if (field !== "absenceReason") return;
this.mutate( this.mutate(
updateParticipationStatuses, updateParticipationStatuses,
{ {
input: [ input: participations.map((participation) => ({
{ id: participation.id,
id: participation.id, absenceReason: value === "present" ? null : value,
absenceReason: value === "present" ? null : value, })),
},
],
}, },
(storedDocumentations, incomingStatuses) => { (storedDocumentations, incomingStatuses) => {
const newStatus = incomingStatuses[0];
const documentation = storedDocumentations.find( const documentation = storedDocumentations.find(
(doc) => doc.id === newStatus.relatedDocumentation.id, (doc) => doc.id === this.documentation.id,
); );
const participationStatus = documentation.participations.find(
(part) => part.id === newStatus.id, incomingStatuses.forEach((newStatus) => {
); const participationStatus = documentation.participations.find(
participationStatus.absenceReason = newStatus.absenceReason; (part) => part.id === newStatus.id,
participationStatus.isOptimistic = newStatus.isOptimistic; );
participationStatus.absenceReason = newStatus.absenceReason;
participationStatus.isOptimistic = newStatus.isOptimistic;
});
return storedDocumentations; return storedDocumentations;
}, },
...@@ -177,7 +177,7 @@ export default { ...@@ -177,7 +177,7 @@ export default {
empty-value="present" empty-value="present"
:loadSelectedChip="loading" :loadSelectedChip="loading"
:value="item.absenceReason?.id || 'present'" :value="item.absenceReason?.id || 'present'"
@input="sendToServer(item, 'absenceReason', $event)" @input="sendToServer([item], 'absenceReason', $event)"
/> />
</v-card-text> </v-card-text>
</template> </template>
......
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