From 8404be14cc2913799c5edc16e02b41b8f2f3bd52 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Tue, 26 Mar 2024 19:57:37 +0100 Subject: [PATCH] Include teachers in coursebook --- .../components/coursebook/coursebook.graphql | 5 +++ .../documentation/LessonInformation.vue | 39 ++++++++++++++++--- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql index 08064df09..59071abce 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql +++ b/aleksis/apps/alsijil/frontend/components/coursebook/coursebook.graphql @@ -38,6 +38,11 @@ query documentationsForCoursebook( lessonEvent { id } + teachers { + id + shortName + fullName + } subject { id name diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue index 2d0c45ec4..005c67332 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonInformation.vue @@ -1,19 +1,26 @@ +<script setup> +import PersonChip from "aleksis.core/components/person/PersonChip.vue"; +</script> + <template> - <div :class="{ 'full-width grid mr-0': true, 'mr-md-4': compact }"> + <div :class="{ 'full-width grid mr-0 mb-2': true, 'mr-md-4 mb-0': compact, 'large-grid': largeGrid }"> <div> - <div :class="{ 'text-right d-flex flex-column fit-content': compact }"> + <div :class="{ 'text-right d-flex flex-column fit-content': largeGrid }"> <time :datetime="documentation.datetimeStart" class="text-no-wrap"> {{ $d(toDateTime(documentation.datetimeStart), "shortTime") }} </time> - <span v-if="!compact">–</span> + <span v-if="!largeGrid">–</span> <time :datetime="documentation.datetimeEnd" class="text-no-wrap"> {{ $d(toDateTime(documentation.datetimeEnd), "shortTime") }} </time> </div> </div> - <span class="text-center"> + <span :class="{ 'text-right': !largeGrid }"> {{ documentation.course?.name }} </span> + <div :class="{ 'd-flex align-center flex-wrap gap': true, 'justify-center': largeGrid }"> + <person-chip v-for="teacher in documentation.teachers" :person="teacher" /> + </div> <subject-chip v-if="documentation.subject" :subject="documentation.subject" @@ -39,15 +46,33 @@ export default { return DateTime.fromISO(dateString); }, }, + computed: { + largeGrid() { + return this.compact && !this.$vuetify.breakpoint.mobile; + } + }, }; </script> <style scoped> .grid { display: grid; - grid-template-columns: 1fr max-content 1fr; + grid-template-columns: auto auto; align-items: center; gap: 1em; + align-content: start; +} + +.large-grid { + grid-template-columns: min-content 1fr 1fr 1fr; + align-content: unset; +} + +.grid:not(.large-grid):nth-child(odd) { + justify-self: start; +} +.grid:not(.large-grid):nth-child(even) { + justify-self: end; } .subject { @@ -57,4 +82,8 @@ export default { .fit-content { width: fit-content; } + +.gap { + gap: 0.25em; +} </style> -- GitLab