From b02156252176c4068726c0798874798ebf395413 Mon Sep 17 00:00:00 2001 From: Oliver Braun Date: Fri, 24 Oct 2025 18:16:58 +0200 Subject: [PATCH] fix: show exahm-rooms --- src/lib/slot/Slot.svelte | 16 ++-------------- src/routes/plan/exams/+page.server.js | 25 ++++++++++++++++++++++++- src/routes/plan/exams/+page.svelte | 3 +++ 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/lib/slot/Slot.svelte b/src/lib/slot/Slot.svelte index 55ab792..8cd89af 100644 --- a/src/lib/slot/Slot.svelte +++ b/src/lib/slot/Slot.svelte @@ -2,6 +2,7 @@ export let day; export let time; export let forbiddenSlot; + export let exahmrooms; export let maxSlots; export let selectedExam; export let selectedExamerID; @@ -41,19 +42,7 @@ // calculateConflicts(); } - let exahm = []; - - async function fetchEXaHMRooms() { - const response = await fetch('/api/plan/roomsForSlot', { - method: 'POST', - body: JSON.stringify({ day: day.number, time: time.number }), - headers: { - 'content-type': 'application/json' - } - }); - let data = await response.json(); - exahm = data.roomsForSlot.exahmRooms; - } + let exahm = exahmrooms; let conflicts = 0; @@ -96,7 +85,6 @@ onMount(() => { fetchExams(); - fetchEXaHMRooms(); }); function forwardSelected(event) { diff --git a/src/routes/plan/exams/+page.server.js b/src/routes/plan/exams/+page.server.js index 50c8e2a..f62bc64 100644 --- a/src/routes/plan/exams/+page.server.js +++ b/src/routes/plan/exams/+page.server.js @@ -22,6 +22,20 @@ export async function load({ params }) { slotNumber } } + roomsForSlots { + day + slot + rooms { + name + seats + handicap + lab + placesWithSocket + exahm + seb + needsRequest + } + } } `; @@ -146,9 +160,18 @@ export async function load({ params }) { } } + let roomForSlotsMap = new Map(); + if (semesterData.roomsForSlots) { + for (let slot of semesterData.roomsForSlots) { + const key = `${slot.day},${slot.slot}`; + roomForSlotsMap.set(key, slot.rooms); + } + } + return { semesterConfig: semesterData.semesterConfig, examsWithoutSlot: data.examsWithoutSlot, - globalSlotStatus: globalSlotStatus + globalSlotStatus: globalSlotStatus, + roomsForSlots: roomForSlotsMap }; } diff --git a/src/routes/plan/exams/+page.svelte b/src/routes/plan/exams/+page.svelte index 6aeff97..1488a44 100644 --- a/src/routes/plan/exams/+page.svelte +++ b/src/routes/plan/exams/+page.svelte @@ -450,6 +450,9 @@ {day} {time} forbiddenSlot={forbiddenSlot(day.number, time.number)} + exahmrooms={data.roomsForSlots + .get(`${day.number},${time.number}`) + .filter((r) => r.exahm)} {maxSlots} {selectedExam} {selectedExamerID}