diff --git a/src/routes/api/addConstraints/+server.js b/src/routes/api/addConstraints/+server.js new file mode 100644 index 0000000..11f4cdc --- /dev/null +++ b/src/routes/api/addConstraints/+server.js @@ -0,0 +1,26 @@ +import { env } from '$env/dynamic/private'; +import { json } from '@sveltejs/kit'; +import { request as gqlrequest, gql } from 'graphql-request'; + +/** @type {import('./$types').RequestHandler} */ +export async function POST({ request }) { + const mutation = gql` + mutation ($ancode: Int!, $constraints: ConstraintsInput!) { + addConstraints(ancode: $ancode, constraints: $constraints) { + ancode + } + } + `; + + const { ancode, constraints } = await request.json(); + + const variables = { + ancode, + constraints: constraints + }; + console.log('adding constraints', variables); + + const data = await gqlrequest(env.PLEXAMS_SERVER, mutation, variables); + + return json(data); +} diff --git a/src/routes/exam/constraints/+page.svelte b/src/routes/exam/constraints/+page.svelte index 54589f1..cc5257d 100644 --- a/src/routes/exam/constraints/+page.svelte +++ b/src/routes/exam/constraints/+page.svelte @@ -1,7 +1,7 @@
- Constraints für Prüfung
+ Constraints
{exam.ancode}. {exam.module} ({exam.mainExamer})
-{#if constraints} -
- -
- {#if !constraints.notPlannedByMe} -
- -
- {#if constraints.excludeDays} -
- {constraints.excludeDays} -
- {/if} - {#if constraints.sameSlot} -
- Im selben Slot - - - {#each constraints.sameSlotExams as sameSlotExam} - - - - - - {/each} - -
{sameSlotExam.ancode}{sameSlotExam.module}{sameSlotExam.mainExamer}
-
- {/if} -
-
{JSON.stringify(constraints, undefined, 4)}
-
- {/if} -{:else} +{#if !constraints} {/if} +
+
+
+ +
+
+{#if !constraintsInput.notPlannedByMe} +
Raum-Constraints
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
Prüfungen, die im gleichen Slot stattfinden müssen
+
+
+

Verfügbare Prüfungen

+
+ +
+
    + {#each zpaExamsToPlan.filter((exam) => exam.ancode + .toString() + .includes(filterText) || exam.module + .toLowerCase() + .includes(filterText.toLowerCase()) || exam.mainExamer + .toLowerCase() + .includes(filterText.toLowerCase())) as exam (exam.ancode)} +
  • + + {exam.ancode}. {exam.module} ({exam.mainExamer}) + + +
  • + {/each} +
+
+
+
+
+
+

Ausgewählte Prüfungen

+ +
+
+
Ausgeschlossene Prüfungstage
+
+ {#each days as day} +
+ +
+ {/each} +
+{/if} + +
+
+ + +
+ + + +{#if showModal} + +{/if}