From bde3dbb99b21862cfc4d15018dc353db9e7b3344 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Wed, 4 Dec 2024 12:02:56 +0100 Subject: [PATCH] Allow edits on statistics page (currently only participation and note) --- .../statistics/StatisticsForPersonPage.vue | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForPersonPage.vue b/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForPersonPage.vue index a1fd5ff0e..d4c5fd74e 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForPersonPage.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForPersonPage.vue @@ -12,6 +12,7 @@ :enable-create="false" :enable-edit="false" :elevated="false" + @lastQuery="lastQuery = $event" > <template #additionalActions> <v-btn-toggle @@ -53,7 +54,17 @@ disable-icon-rotate > <template #actions> - <v-icon> $edit </v-icon> + <v-btn v-if="showEdit(item)" color="primary" icon> + <v-icon> $edit </v-icon> + </v-btn> + <v-btn + v-if="showDelete(item)" + color="error" + icon + @click.prevent.stop + > + <v-icon color="error">$deleteContent</v-icon> + </v-btn> </template> <v-row class="mr-4"> <v-col cols="12" md="6" class="pa-0"> @@ -151,7 +162,28 @@ </v-row> </v-expansion-panel-header> <v-expansion-panel-content> - <!-- FIXME --> + <v-card-text class="pb-0"> + <text-note + v-if="item.note" + :value="item" + :participation="{}" + :person="personName" + :subjects="[]" + :absence-reasons="absenceReasons" + :extra-marks="[]" + :affected-query="lastQuery" + :documentation="item.relatedDocumentation" + /> + <update-participation + v-else + :participation="item" + :subjects="[]" + :absence-reasons="absenceReasons" + :extra-marks="[]" + :affected-query="lastQuery" + :documentation="item.relatedDocumentation" + /> + </v-card-text> </v-expansion-panel-content> </v-expansion-panel> </v-expansion-panels> @@ -189,6 +221,7 @@ </template> <script> +import { absenceReasons } from "../queries/absenceReasons.graphql"; import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.vue"; import ActiveSchoolTermSelect from "aleksis.core/components/school_term/ActiveSchoolTermSelect.vue"; import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue"; @@ -206,12 +239,16 @@ import { import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue"; import { MODE } from "./modes.js"; import PersonalNoteChip from "../personal_notes/PersonalNoteChip.vue"; +import TextNote from "../personal_notes/TextNote.vue"; +import UpdateParticipation from "../absences/UpdateParticipation.vue"; import TardinessChip from "../absences/TardinessChip.vue"; export default { name: "StatisticsForPersonPage", components: { TardinessChip, + UpdateParticipation, + TextNote, PersonalNoteChip, ActiveSchoolTermSelect, ExtraMarkChip, @@ -251,10 +288,17 @@ export default { ); }, }, + absenceReasons: { + query: absenceReasons, + update: (data) => data.items, + }, }, data() { return { + personName: {}, statisticsBottomSheet: false, + lastQuery: null, + absenceReasons: [], }; }, computed: { -- GitLab