Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@ type PlannedRoom {
handicap: Boolean!
handicapRoomAlone: Boolean!
ntaMtknr: String
prePlanned: Boolean!
reserve: Boolean!
room: Room!
slot: Int!
Expand Down
25 changes: 24 additions & 1 deletion src/lib/exam/ExamWithNTAsForRoomPlanning.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,31 @@
{#each plannedExam.plannedRooms as room}
{#if room.handicap}
<div
class="border-dashed border-2 border-black {bgRoom(room.room)} rounded-lg m-1 p-1"
class="flex border-dashed border-2 border-black {bgRoom(
room.room
)} rounded-lg m-1 p-1"
>
{#if room.prePlanned}
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="icon icon-tabler icon-tabler-calendar-check"
viewBox="0 0 24 24"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M11.5 21h-5.5a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v6" />
<path d="M16 3v4" />
<path d="M8 3v4" />
<path d="M4 11h16" />
<path d="M15 19l2 2l4 -4" />
</svg>
{/if}
{room.room.name} (
{#each room.studentsInRoom as student}
{ntaName(plannedExam, student)};
Expand Down
62 changes: 40 additions & 22 deletions src/lib/nta/NTACard.svelte
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<script>
export let nta;
import { mkStarttime } from '$lib/jshelper/misc.js';
</script>

<div class="card bg-base-100 shadow-xl m-2">
Expand Down Expand Up @@ -31,28 +32,45 @@
<div>
<span class="text-black-900">
<ul>
{#each nta.exams as exam}
{#if exam.constraints && exam.constraints.notPlannedByMe}
<li class="text-slate-400">
{exam.ancode}. {exam.zpaExam.mainExamer}: {exam.zpaExam.module}
</li>
{:else}
<li>
{exam.ancode}. {exam.zpaExam.mainExamer}: {exam.zpaExam.module}
{#if exam.constraints && exam.constraints.roomConstraints && exam.constraints.roomConstraints.seb}
<div class="badge badge-error">SEB</div>
{/if}
{#if exam.constraints && exam.constraints.roomConstraints && exam.constraints.roomConstraints.exahm}
<div class="badge badge-error">EXaHM</div>
{/if}
{#if exam.roomName}
<div class="badge badge-success">{exam.roomName}</div>
{:else}
<div class="badge badge-warning">noch nicht geplant</div>
{/if}
</li>
{/if}
{/each}
<table>
<tbody>
{#each nta.exams as exam}
<tr class="m-2">
{#if exam.constraints && exam.constraints.notPlannedByMe}
<td class="text-slate-400">
{exam.ancode}. {exam.zpaExam.mainExamer}: {exam.zpaExam.module}
</td>
{:else}
<td class="pr-4 pb-2">
{exam.ancode}. {exam.zpaExam.mainExamer}: {exam.zpaExam.module}
</td>
<td class="pr-4">
{#if exam.roomName}
<div class="badge badge-success">{exam.roomName}</div>
{:else}
<div class="badge badge-warning">noch nicht geplant</div>
{/if}
</td>
<td class="pr-4">
{#if exam.starttime}
{mkStarttime(exam.starttime)}
{:else}
<div class="badge badge-warning">noch nicht geplant</div>
{/if}
</td>
<td class="pr-4">
{#if exam.constraints && exam.constraints.roomConstraints && exam.constraints.roomConstraints.seb}
<div class="badge badge-error">SEB</div>
{/if}
{#if exam.constraints && exam.constraints.roomConstraints && exam.constraints.roomConstraints.exahm}
<div class="badge badge-error">EXaHM</div>
{/if}
</td>
{/if}
</tr>
{/each}
</tbody>
</table>
</ul>
</span>
</div>
Expand Down
1 change: 1 addition & 0 deletions src/routes/api/examsInSlot/+server.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ export async function POST({ request }) {
reserve
studentsInRoom
ntaMtknr
prePlanned
}
}
}
Expand Down
19 changes: 19 additions & 0 deletions src/routes/nta/ntaWithRegs/+page.server.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,25 @@ export async function load({ params }) {
data.generatedExam.roomName = roomData.plannedRoomForStudent.room.name;
}

const plannedExamQuery = gql`
query {
plannedExam(ancode: ${ancode}) {
planEntry {
starttime
}
}
}`;

const planData = await request(env.PLEXAMS_SERVER, plannedExamQuery);

if (
planData != null &&
planData.plannedExam != null &&
planData.plannedExam.planEntry != null
) {
data.generatedExam.starttime = planData.plannedExam.planEntry.starttime;
}

exams.push(data.generatedExam);
}

Expand Down