Skip to content
Snippets Groups Projects
Commit f3eb9b5e authored by permcu's avatar permcu
Browse files

Implement absence-creation-summary list

parent e8cb889d
No related branches found
No related tags found
1 merge request!356Add dialog for creation of long-term absences
<template> <template>
<!-- TODO: Hide header --> <!-- MAYBE introduce a minimal variant of CRUDIterator -->
<!-- with most features disabled for this list usecase -->
<c-r-u-d-iterator <c-r-u-d-iterator
i18n-key="TODO"
:gql-query="gqlQuery" :gql-query="gqlQuery"
:gql-additional-query-args="gqlArgs" :gql-additional-query-args="gqlArgs"
:enable-search="false"
:enable-create="false" :enable-create="false"
:enable-edit="false" :enable-edit="false"
:elevated="false" :elevated="false"
disable-pagination
hide-default-footer
> >
<template #default="{ items }"> <template #default="{ items }">
<v-expansion-panels> <v-expansion-panels>
...@@ -14,10 +19,42 @@ ...@@ -14,10 +19,42 @@
:key="person.id" :key="person.id"
> >
<v-expansion-panel-header> <v-expansion-panel-header>
{{ persons.find((p) => p.id === person.id) }} <div>
{{ persons.find((p) => p.id === person.id).fullName }}
</div>
<v-spacer />
<div>
<!-- TODO i18 Stunden -->
{{ person.lessons.length }} Stunden
</div>
</v-expansion-panel-header> </v-expansion-panel-header>
<v-expansion-panel-content> <v-expansion-panel-content>
TODO <v-divider />
<v-list-item
v-for="lesson in person.lessons"
class="px-0"
>
<!-- TODO: We should extract this display & share it -->
<time :datetime="lesson.datetimeStart" class="pr-2 text-no-wrap">
{{ $d(toDateTime(lesson.datetimeStart), "shortWithWeekday") }}
</time>
<span>(</span>
<time :datetime="lesson.datetimeStart" class="text-no-wrap">
{{ $d(toDateTime(lesson.datetimeStart), "shortTime") }}
</time>
<span>-</span>
<time :datetime="lesson.datetimeEnd" class="text-no-wrap">
{{ $d(toDateTime(lesson.datetimeEnd), "shortTime") }}
</time>
<span>)</span>
<v-spacer />
<div class="pr-2">
{{ lesson.course.name }}
</div>
<subject-chip
:subject="lesson.subject"
/>
</v-list-item>
</v-expansion-panel-content> </v-expansion-panel-content>
</v-expansion-panel> </v-expansion-panel>
</v-expansion-panels> </v-expansion-panels>
...@@ -27,12 +64,15 @@ ...@@ -27,12 +64,15 @@
<script> <script>
import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue"; import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue";
import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue";
import { lessonsForPersons } from "./absenceCreation.graphql"; import { lessonsForPersons } from "./absenceCreation.graphql";
import { DateTime } from "luxon";
export default { export default {
name: "AbsenceCreationSummary", name: "AbsenceCreationSummary",
components: { components: {
CRUDIterator, CRUDIterator,
SubjectChip,
}, },
props: { props: {
persons: { persons: {
...@@ -62,5 +102,10 @@ export default { ...@@ -62,5 +102,10 @@ export default {
}; };
}, },
}, },
methods: {
toDateTime(dateString) {
return DateTime.fromISO(dateString);
},
},
}; };
</script> </script>
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