diff --git a/schema.graphql b/schema.graphql
index ce6dc98..4df2104 100644
--- a/schema.graphql
+++ b/schema.graphql
@@ -179,7 +179,8 @@ type ExamWithRegs {
type ExamWithRegsAndRooms {
exam: PlannedExam!
normalRegsMtknr: [String!]!
- ntas: [NTA!]!
+ ntasInAloneRooms: [NTA!]!
+ ntasInNormalRooms: [NTA!]!
rooms: [PlannedRoom!]!
}
@@ -416,6 +417,8 @@ type PreExam {
type PrePlannedRoom {
ancode: Int!
+ mtknr: String
+ reserve: Boolean!
roomName: String!
}
@@ -498,6 +501,7 @@ type Query {
plannedRoomForStudent(ancode: Int!, mtknr: String!): PlannedRoom
plannedRoomNames: [String!]
plannedRoomNamesInSlot(day: Int!, time: Int!): [String!]
+ plannedRooms: [PlannedRoom!]!
plannedRoomsInSlot(day: Int!, time: Int!): [PlannedRoom!]
preExamsInSlot(day: Int!, time: Int!): [PreExam!]
primussExam(ancode: Int!, program: String!): PrimussExam!
diff --git a/src/lib/Nav.svelte b/src/lib/Nav.svelte
index e2ce37d..7e31486 100644
--- a/src/lib/Nav.svelte
+++ b/src/lib/Nav.svelte
@@ -86,7 +86,7 @@
Kalenderansicht
Raumplanung
- Verfügbare Räume
+ Geplante Räume
Aufsichtenplanung
Prüfungsliste für ZPA
diff --git a/src/routes/plan/plannedRooms/+page.server.ts b/src/routes/plan/plannedRooms/+page.server.ts
new file mode 100644
index 0000000..deb24b9
--- /dev/null
+++ b/src/routes/plan/plannedRooms/+page.server.ts
@@ -0,0 +1,53 @@
+import { env } from '$env/dynamic/private';
+import { request, gql } from 'graphql-request';
+
+export async function load({ params }) {
+ const semesterQuery = gql`
+ query {
+ semesterConfig {
+ days {
+ number
+ date
+ }
+ starttimes {
+ number
+ start
+ }
+ }
+ }
+ `;
+
+ const semesterData = await request(env.PLEXAMS_SERVER, semesterQuery);
+
+ const roomQuery = gql`
+ query {
+ plannedRoomNames
+ }
+ `;
+
+ const roomData = await request(env.PLEXAMS_SERVER, roomQuery);
+
+ const plannedRoomsQuery = gql`
+ query {
+ plannedRooms {
+ day
+ slot
+ room {
+ name
+ }
+ }
+ }
+ `;
+
+ const plannedRoomsData = await request(env.PLEXAMS_SERVER, plannedRoomsQuery);
+
+ const plannedRoomsSet = new Set(
+ plannedRoomsData.plannedRooms.map((room: any) => `${room.day}-${room.slot}-${room.room.name}`)
+ );
+
+ return {
+ semesterConfig: semesterData.semesterConfig,
+ plannedRoomNames: roomData.plannedRoomNames,
+ plannedRooms: plannedRoomsSet
+ };
+}
diff --git a/src/routes/plan/plannedRooms/+page.svelte b/src/routes/plan/plannedRooms/+page.svelte
new file mode 100644
index 0000000..97d4e83
--- /dev/null
+++ b/src/routes/plan/plannedRooms/+page.svelte
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Raum |
+ {#each data.semesterConfig.days as day}
+ Tag {day.number} {mkDateShort(day.date)} |
+ {/each}
+
+
+
+ {#each data.plannedRoomNames as roomName}
+
+ | {roomName} |
+ {#each data.semesterConfig.days as day}
+
+
+ {#each data.semesterConfig.starttimes as slot}
+
+ {showSlotNumber(day, slot.number, roomName)}
+
+ {/each}
+
+ |
+ {/each}
+
+ {/each}
+
+
+