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 {
},
},
methods: {
sendToServer(participation, field, value) {
sendToServer(participations, field, value) {
if (field !== "absenceReason") return;
this.mutate(
updateParticipationStatuses,
{
input: [
{
id: participation.id,
absenceReason: value === "present" ? null : value,
},
],
input: participations.map((participation) => ({
id: participation.id,
absenceReason: value === "present" ? null : value,
})),
},
(storedDocumentations, incomingStatuses) => {
const newStatus = incomingStatuses[0];
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,
);
participationStatus.absenceReason = newStatus.absenceReason;
participationStatus.isOptimistic = newStatus.isOptimistic;
incomingStatuses.forEach((newStatus) => {
const participationStatus = documentation.participations.find(
(part) => part.id === newStatus.id,
);
participationStatus.absenceReason = newStatus.absenceReason;
participationStatus.isOptimistic = newStatus.isOptimistic;
});
return storedDocumentations;
},
......@@ -177,7 +177,7 @@ export default {
empty-value="present"
:loadSelectedChip="loading"
:value="item.absenceReason?.id || 'present'"
@input="sendToServer(item, 'absenceReason', $event)"
@input="sendToServer([item], 'absenceReason', $event)"
/>
</v-card-text>
</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