diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue b/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue index c9dbcbc1eaddba993f056e01d9da7fdec29d05e5..6b42c2425cfb411a1b91285ca5b1abccdc0d53d2 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/statistics/StatisticsForGroupTab.vue @@ -30,6 +30,8 @@ import CRUDList from "aleksis.core/components/generic/CRUDList.vue"; import AvatarContent from "aleksis.core/components/person/AvatarContent.vue"; import { statisticsByGroup } from "./statistics.graphql"; +import { absenceReasons } from "../absences/absenceReasons.graphql"; +import { extraMarks } from "../../extra_marks/extra_marks.graphql"; export default { name: "StatisticsForGroupTab", @@ -42,6 +44,8 @@ export default { return { gqlQuery: statisticsByGroup, items: [], + absenceReasons: [], + extraMarks: [], }; }, computed: { @@ -52,20 +56,18 @@ export default { text: this.$t("person.name"), value: "person", }, - ...(this.items.length > 0 ? [new Set(this.items.flatMap((person) => { - return person.absenceReasons.map((absence) => absence.absenceReason.shortName) - }))].map((name) => { + ...this.absenceReasons.map((reason, index) => { return { - text: name, + text: reason.name, + value: `absenceReasons.${index}.count`, }; - }) : []), - ...(this.items.length > 0 ? [new Set(this.items.flatMap((person) => { - return person.extraMarks.map((extraMark) => extraMark.extraMark.shortName) - }))].map((name) => { + }), + ...this.extraMarks.map((mark, index) => { return { - text: name, + text: mark.name, + value: `extraMarks.${index}.count`, }; - }) : []), + }), { text: "", }, @@ -81,5 +83,15 @@ export default { }; }, }, + apollo: { + absenceReasons: { + query: absenceReasons, + update: (data) => data.items, + }, + extraMarks: { + query: extraMarks, + update: (data) => data.items, + }, + }, }; </script>