From c23ac90d351afea49480bb63f034e0b7ef33660c Mon Sep 17 00:00:00 2001 From: rene Date: Wed, 20 May 2026 19:43:46 +0200 Subject: [PATCH] =?UTF-8?q?Durchf=C3=BChrender:=20Verf=C3=BCgbarkeit=20pro?= =?UTF-8?q?=20Termin,=20Umbenennung=20Trainer=E2=86=92Durchf=C3=BChrender?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/lib/types.ts | 3 + .../routes/(app)/einstellungen/+page.svelte | 2 +- app/src/routes/(app)/termine/+page.svelte | 302 +++++++++++------- .../1779230600_termin_verfuegbarkeit.js | 23 ++ 4 files changed, 213 insertions(+), 117 deletions(-) create mode 100644 pocketbase/pb_migrations/1779230600_termin_verfuegbarkeit.js diff --git a/app/src/lib/types.ts b/app/src/lib/types.ts index ef52edf..219319b 100644 --- a/app/src/lib/types.ts +++ b/app/src/lib/types.ts @@ -43,6 +43,7 @@ export interface Mitglied { } export type Rolle = 'admin' | 'trainer'; +export type Verfuegbarkeit = 'offen' | 'bestaetigt' | 'abgesagt' | 'vertretung_gesucht'; export interface Gruppe { id: string; @@ -87,6 +88,8 @@ export interface Termin { ende?: string; ort?: string; gruppe_ids: string[]; + durchfuehrender_id?: string; + verfuegbarkeit?: Verfuegbarkeit; } export interface Nachricht { diff --git a/app/src/routes/(app)/einstellungen/+page.svelte b/app/src/routes/(app)/einstellungen/+page.svelte index 455e201..8cba42a 100644 --- a/app/src/routes/(app)/einstellungen/+page.svelte +++ b/app/src/routes/(app)/einstellungen/+page.svelte @@ -208,7 +208,7 @@ {#if isAdmin()}
-

Trainer

+

Durchführende

{#if trainer.length === 0}

Noch keine Trainer eingeladen.

{:else} diff --git a/app/src/routes/(app)/termine/+page.svelte b/app/src/routes/(app)/termine/+page.svelte index ed2d3fc..47f2314 100644 --- a/app/src/routes/(app)/termine/+page.svelte +++ b/app/src/routes/(app)/termine/+page.svelte @@ -1,25 +1,29 @@ @@ -134,13 +156,21 @@

Termine

- + {#if isAdmin()} + + {/if}
+{#if isAdmin() && offene.length > 0} +
+ ⚠ {offene.length} {offene.length === 1 ? 'Termin benötigt' : 'Termine benötigen'} eine Bestätigung +
+{/if} + {#if loading}

Laden…

{:else if termine.length === 0} -

Noch keine Termine – lege den ersten an!

+

Noch keine Termine geplant.

{:else} {#if upcoming.length > 0} @@ -184,9 +253,11 @@ {t.titel} {formatDatum(t.beginn)}{t.ort ? ' · ' + t.ort : ''} -
- -
+ {#if isAdmin()} +
+ +
+ {/if} {/each} @@ -194,18 +265,16 @@ {/if} {/if} - -{#if showForm} + +{#if showForm && isAdmin()} {/if} - + {#if showDelete}