diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue b/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue index 6b42c2425cfb411a1b91285ca5b1abccdc0d53d2..b3d22a6f17eccaaed873aea01a33f9340f9f2604 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue @@ -15,6 +15,14 @@ {{ header }} </template> + <template v-for="(extraMark, index) in extraMarks" #[`extraMarks.${index}.count`]="{ item }"> + <extra-mark-chip :extra-mark="extraMark" only-show-count :count="item.extraMarks.find(m => extraMark.id === m.extraMark.id).count" /> + </template> + + <template v-for="(absenceReason, index) in absenceReasons" #[`absenceReasons.${index}.count`]="{ item }"> + <absence-reason-chip :absence-reason="absenceReason" onlyShowCount :count="item.absenceReasons.find(m => absenceReason.id === m.absenceReason.id).count" /> + </template> + <template #person="{ item }"> <v-avatar class="my-1 me-2"> <avatar-content :id="item.person.id" /> @@ -29,16 +37,21 @@ import groupOverviewTabMixin from "aleksis.core/mixins/groupOverviewTabMixin.js" import CRUDList from "aleksis.core/components/generic/CRUDList.vue"; import AvatarContent from "aleksis.core/components/person/AvatarContent.vue"; +import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.vue"; +import ExtraMarkChip from "aleksis.apps.alsijil/components/extra_marks/ExtraMarkChip.vue"; + import { statisticsByGroup } from "./statistics.graphql"; -import { absenceReasons } from "../absences/absenceReasons.graphql"; +import { absenceReasons } from "aleksis.apps.kolego/components/absenceReasons.graphql"; import { extraMarks } from "../../extra_marks/extra_marks.graphql"; export default { name: "StatisticsForGroupTab", mixins: [groupOverviewTabMixin], components: { + AbsenceReasonChip, AvatarContent, CRUDList, + ExtraMarkChip, }, data() { return { @@ -73,6 +86,12 @@ export default { }, ]; }, + absenceReasonsFirstHeader() { + return this.absenceReasons.length > 0 ? this.absenceReasons[0].shortName + ".header" : null; + }, + extraMarksFirstHeader() { + return this.extraMarks.length > 0 ? this.extraMarks[0].shortName + ".header" : null; + }, gqlQueryArgs() { const term = this.schoolTerm ? { term: this.schoolTerm.id }