diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue index 29e3b569291822413f178e1c4d4f068bcef8d2d3..57c76774b88188114ea792f713048b7ec9160e1a 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/LessonNotes.vue @@ -1,6 +1,7 @@ <script setup> import AbsenceReasonChip from "aleksis.apps.kolego/components/AbsenceReasonChip.vue"; import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue"; +import TardinessChip from "../personal_notes/TardinessChip.vue"; </script> <template> @@ -64,6 +65,27 @@ import ExtraMarkChip from "../../extra_marks/ExtraMarkChip.vue"; </template> </extra-mark-chip> + <tardiness-chip> + {{ $t("alsijil.personal_notes.late") }} + + <template #append> + <span>: + {{ + tardyParticipations + .slice(0, 5) + .map((participation) => participation.person.firstName) + .join(", ") + }} + + <span v-if="tardyParticipations.length > 5"> + <!-- eslint-disable @intlify/vue-i18n/no-raw-text --> + +{{ tardyParticipations.length - 5 }} + <!-- eslint-enable @intlify/vue-i18n/no-raw-text --> + </span> + </span> + </template> + </tardiness-chip> + <manage-students-trigger v-bind="documentationPartProps" /> </div> </template> @@ -111,6 +133,10 @@ export default { return value; }, {}); }, + tardyParticipations() { + return this.documentation.participations.filter(p => + p.noteWithTardiness != null && p.noteWithTardiness.tardiness > 0); + }, }, }; </script>