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
3 changes: 3 additions & 0 deletions src/routes/exam/constraints/[code=integer]/+page.server.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ export async function load({ params }) {
lab
exahm
seb
kdpJiraURL
maxStudents
comments
}
}
}
Expand Down
72 changes: 71 additions & 1 deletion src/routes/exam/constraints/[code=integer]/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@
lab: false,
seb: false,
exahm: false,
excludeDays: []
excludeDays: [],
kdpJiraURL: '',
maxStudents: 0,
comments: ''
};

if (constraints) {
Expand All @@ -33,6 +36,9 @@
constraintsInput.lab = constraints.roomConstraints.lab;
constraintsInput.seb = constraints.roomConstraints.seb;
constraintsInput.exahm = constraints.roomConstraints.exahm;
constraintsInput.kdpJiraURL = constraints.roomConstraints.kdpJiraURL;
constraintsInput.maxStudents = constraints.roomConstraints.maxStudents;
constraintsInput.comments = constraints.roomConstraints.comments;
}
if (constraints.excludeDays) {
constraintsInput.excludeDays =
Expand All @@ -58,6 +64,19 @@
return new Date(`20${yearPart}-${monthPart}-${dayPart}T12:00:00`);
});
}
if (!constraintsInput.kdpJiraURL || constraintsInput.kdpJiraURL === '') {
constraintsInput.kdpJiraURL = null;
} else {
constraintsInput.kdpJiraURL = constraintsInput.kdpJiraURL.trim();
}
if (!constraintsInput.comments || constraintsInput.comments === '') {
constraintsInput.comments = null;
} else {
constraintsInput.comments = constraintsInput.comments.trim();
}
if (!constraintsInput.maxStudents || constraintsInput.maxStudents === 0) {
constraintsInput.maxStudents = null;
}

console.log('ConstraintsInput', constraintsInput);

Expand Down Expand Up @@ -105,6 +124,7 @@
}
let filterText = '';
let showModal = false;
let navigateAncode = '';

$: console.log('ConstraintsInput', constraintsInput.excludeDays);
</script>
Expand Down Expand Up @@ -198,6 +218,38 @@
</label>
</fieldset>
</div>
{#if constraintsInput.seb || constraintsInput.exahm}
<div class="flex w-full justify-center mt-4">
<fieldset class="fieldset bg-base-100 border-base-300 rounded-box w-3/4 border p-4">
<label class="label">
<span class="label-text">KDP Jira URL</span>
<input
type="url"
class="input input-bordered w-full"
bind:value={constraintsInput.kdpJiraURL}
placeholder="https://example.com"
/>
</label>
<label class="label mt-4">
<span class="label-text">Maximale Anzahl Studierende</span>
<input
type="number"
class="input input-bordered w-full"
bind:value={constraintsInput.maxStudents}
placeholder="0"
/>
</label>
<label class="label mt-4">
<span class="label-text">Kommentare</span>
<textarea
class="textarea textarea-bordered w-full"
bind:value={constraintsInput.comments}
placeholder="Kommentare eingeben..."
></textarea>
</label>
</fieldset>
</div>
{/if}
<div class="divider">Prüfungen, die im gleichen Slot stattfinden müssen</div>
<div class="flex w-full justify-center">
<div class="w-1/2 p-4">
Expand Down Expand Up @@ -279,6 +331,24 @@
<button class="btn m-2" on:click={() => addConstraints()}>Änderungen übernehmen</button>
<button class="btn m-2" on:click={() => (showModal = true)}>Constraints anzeigen</button>
</div>
<div class="flex w-full justify-center mt-4">
<input
type="number"
class="input input-bordered w-64 mr-2"
bind:value={navigateAncode}
placeholder="Ancode eingeben"
/>
<button
class="btn"
on:click={() => {
if (navigateAncode) {
location.href = `/exam/constraints/${navigateAncode}`;
}
}}
>
Zu Constraint wechseln
</button>
</div>

{#if showModal}
<div class="modal modal-open">
Expand Down
3 changes: 3 additions & 0 deletions src/routes/exam/kdp/+page.server.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ export async function load({ params }) {
lab
exahm
seb
kdpJiraURL
maxStudents
comments
}
}
}
Expand Down
41 changes: 38 additions & 3 deletions src/routes/exam/kdp/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<span class="uppercase">{exams.length} Prüfungen mit EXaHM oder SEB</span>
</div>

<table class="table-auto border-collapse border border-gray-400 w-full text-left">
<table class="table-auto table-zebra border-collapse border border-gray-400 w-full text-left">
<thead>
<tr>
<th class="border border-gray-400 px-4 py-2">Ancode</th>
Expand All @@ -49,7 +49,10 @@
<th class="border border-gray-400 px-4 py-2">DE</th>
<th class="border border-gray-400 px-4 py-2">GS</th>
<th class="border border-gray-400 px-4 py-2">ID</th>
<th class="border border-gray-400 px-4 py-2">Räume (Studierende)</th>
<th class="border border-gray-400 px-4 py-2">Gruppen</th>
<th class="border border-gray-400 px-4 py-2">Jira</th>
<th class="border border-gray-400 px-4 py-2">Kommentar</th>
</tr>
</thead>
<tbody>
Expand All @@ -67,13 +70,45 @@
style="background-color: {exam.zpaExam.primussAncodes.some(
(ancode) => ancode.program === program
)
? 'red'
? 'cyan'
: 'transparent'}"
>
</td>
{/each}
<td
class="border border-gray-400 px-4 py-2"
style="background-color: {exam.constraints.roomConstraints.maxStudents
? 'transparent'
: 'red'}"
>
{#if exam.constraints.roomConstraints.maxStudents}
{Math.ceil(exam.constraints.roomConstraints.maxStudents / 30)} ({exam.constraints
.roomConstraints.maxStudents})
{:else}
fehlt
{/if}
</td>
<td class="border border-gray-400 px-4 py-2">{exam.zpaExam.groups.join(', ')}</td>
</tr>
<td
class="border border-gray-400 px-4 py-2"
style="background-color: {exam.constraints.roomConstraints.kdpJiraURL
? 'transparent'
: 'red'}"
>
{#if exam.constraints.roomConstraints.kdpJiraURL}
<a href={exam.constraints.roomConstraints.kdpJiraURL} target="_blank">
{exam.constraints.roomConstraints.kdpJiraURL.split('/').pop()}
</a>
{:else}
fehlt
{/if}
</td>
<td class="border border-gray-400 px-4 py-2">
{#if exam.constraints.roomConstraints.comments}
{exam.constraints.roomConstraints.comments}
{/if}
</td></tr
>
{/each}
</tbody>
</table>