Skip to content
Snippets Groups Projects
Verified Commit 7faa1dfb authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add print button to coursebook group tab

parent d43b44bd
No related branches found
No related tags found
1 merge request!476Resolve "Not storing groups for documentations is kind of a problem"
Pipeline #195628 failed
...@@ -20,9 +20,10 @@ import CancelButton from "aleksis.core/components/generic/buttons/CancelButton.v ...@@ -20,9 +20,10 @@ import CancelButton from "aleksis.core/components/generic/buttons/CancelButton.v
{{ $t("alsijil.coursebook.print.title") }} {{ $t("alsijil.coursebook.print.title") }}
</template> </template>
<template #content> <template #content>
{{ $t("alsijil.coursebook.print.groups") }}
<v-autocomplete <v-autocomplete
v-if="!group"
:items="availableGroups" :items="availableGroups"
:label="$t('alsijil.coursebook.print.groups')"
item-text="name" item-text="name"
item-value="id" item-value="id"
:value="value" :value="value"
...@@ -87,7 +88,16 @@ export default { ...@@ -87,7 +88,16 @@ export default {
*/ */
availableGroups: { availableGroups: {
type: Array, type: Array,
required: true, required: false,
default: () => [],
},
/**
* Set a group to use this dialog exclusively for
*/
group: {
type: Object,
required: false,
default: null,
}, },
/** /**
* Initially selected groups * Initially selected groups
...@@ -121,6 +131,9 @@ export default { ...@@ -121,6 +131,9 @@ export default {
}, },
computed: { computed: {
selectedGroups() { selectedGroups() {
if (this.group) {
return [this.group.id];
}
if (this.currentGroupSelection.length == 0) { if (this.currentGroupSelection.length == 0) {
return this.value.map((group) => group.id); return this.value.map((group) => group.id);
} else { } else {
......
...@@ -10,6 +10,9 @@ ...@@ -10,6 +10,9 @@
:show-select="false" :show-select="false"
@items="items = $event" @items="items = $event"
> >
<template #additionalActions>
<coursebook-print-dialog :group="group" />
</template>
<template <template
v-for="(extraMark, index) in extraMarks" v-for="(extraMark, index) in extraMarks"
#[`extraMarks.${index}.count`]="{ item }" #[`extraMarks.${index}.count`]="{ item }"
...@@ -67,7 +70,7 @@ ...@@ -67,7 +70,7 @@
:to="{ :to="{
name: 'core.personById', name: 'core.personById',
params: { params: {
personId: item.person.id, id: item.person.id,
}, },
hash: '#' + MODE.PARTICIPATIONS, hash: '#' + MODE.PARTICIPATIONS,
}" }"
...@@ -81,13 +84,14 @@ import groupOverviewTabMixin from "aleksis.core/mixins/groupOverviewTabMixin.js" ...@@ -81,13 +84,14 @@ import groupOverviewTabMixin from "aleksis.core/mixins/groupOverviewTabMixin.js"
import CRUDList from "aleksis.core/components/generic/CRUDList.vue"; import CRUDList from "aleksis.core/components/generic/CRUDList.vue";
import PersonChip from "aleksis.core/components/person/PersonChip.vue"; import PersonChip from "aleksis.core/components/person/PersonChip.vue";
import SecondaryActionButton from "aleksis.core/components/generic/buttons/SecondaryActionButton.vue"; import SecondaryActionButton from "aleksis.core/components/generic/buttons/SecondaryActionButton.vue";
import CoursebookPrintDialog from "../CoursebookPrintDialog.vue";
import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.vue"; import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.vue";
import ExtraMarkChip from "aleksis.apps.alsijil/components/extra_marks/ExtraMarkChip.vue"; import ExtraMarkChip from "aleksis.apps.alsijil/components/extra_marks/ExtraMarkChip.vue";
import { statisticsByGroup } from "./statistics.graphql"; import { statisticsByGroup } from "./statistics.graphql";
import { absenceReasons } from "../queries/absenceReasons.graphql"; import { absenceReasons } from "../queries/absenceReasons.graphql";
import { extraMarks } from "../../extra_marks/extra_marks.graphql"; import { extraMarks } from "../queries/extraMarks.graphql";
import { MODE } from "./modes"; import { MODE } from "./modes";
export default { export default {
...@@ -99,6 +103,7 @@ export default { ...@@ -99,6 +103,7 @@ export default {
ExtraMarkChip, ExtraMarkChip,
PersonChip, PersonChip,
SecondaryActionButton, SecondaryActionButton,
CoursebookPrintDialog,
}, },
data() { data() {
return { return {
......
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