diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/BundleCard.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/BundleCard.vue index 83ac94a5a99fa305247a25471d2bad45f7b1f301..505f0c1e5e13da5ac70bf241c300b186ef303af0 100644 --- a/aleksis/apps/lesrooster/frontend/components/timetable_management/BundleCard.vue +++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/BundleCard.vue @@ -36,21 +36,23 @@ export default defineComponent({ return this.bundle.courses || this.bundle.lessons; }, subjects() { - return this.children.flatMap(child => child.subject || { + const subjects = this.children.flatMap(child => child.subject || { name: "", colourFg: "#000000", colourBg: "#e6e6e6", } ); + return [...new Set(subjects)]; }, teachers() { - return this.children.flatMap(child => child.teachers); + const teachers = this.children.flatMap(child => child.teachers); + return [...new Set(teachers)]; }, rooms() { const rooms = this.bundle.courses ? this.bundle.courses.map(course => course.defaultRoom) : this.bundle.lessons.flatMap(lesson => lesson.rooms); - return rooms.filter(n => n); + return [...new Set(rooms.filter(room => room))]; }, colorFg() { if (this.subjects.length === 1) {