Skip to content

feat(#53): Stundenplan als Dashboard#54

Merged
simonabler merged 8 commits into
masterfrom
53-feature-stundenplan-als-dashboard
May 24, 2026
Merged

feat(#53): Stundenplan als Dashboard#54
simonabler merged 8 commits into
masterfrom
53-feature-stundenplan-als-dashboard

Conversation

@simonabler
Copy link
Copy Markdown
Owner

Backend:

  • RepeatType + WeekVariant Enums in libs/domain
  • TimetableEntryDto, CreateTimetableEntryDto, UpdateTimetableEntryDto
  • TimetableEntry Entity (timetable_entries Tabelle)
  • TimetableService mit Ownership-Prüfung
  • TimetableController (GET/POST/PUT/DELETE /timetable)
  • TimetableModule registriert in AppModule
  • Migration 1773610000000-AddTimetableEntries (IF NOT EXISTS + Indizes)

Frontend:

  • TimetableService (/api/timetable)
  • week.utils.ts (getMondayOfWeek, filterEntriesForWeek, repeatLabel, ...)
  • TimetableEntryFormComponent (Slide-in Panel, alle 4 Wiederholungstypen)
  • TimetableComponent (Wochenraster Mo–Fr, Wochennavigation, A/B-Woche)
  • Route /app → TimetableComponent (ehemaliges Dashboard → /app/klassen-uebersicht)
  • Sidebar: Dashboard → Stundenplan mit Kalender-Icon

Backend:
- RepeatType + WeekVariant Enums in libs/domain
- TimetableEntryDto, CreateTimetableEntryDto, UpdateTimetableEntryDto
- TimetableEntry Entity (timetable_entries Tabelle)
- TimetableService mit Ownership-Prüfung
- TimetableController (GET/POST/PUT/DELETE /timetable)
- TimetableModule registriert in AppModule
- Migration 1773610000000-AddTimetableEntries (IF NOT EXISTS + Indizes)

Frontend:
- TimetableService (/api/timetable)
- week.utils.ts (getMondayOfWeek, filterEntriesForWeek, repeatLabel, ...)
- TimetableEntryFormComponent (Slide-in Panel, alle 4 Wiederholungstypen)
- TimetableComponent (Wochenraster Mo–Fr, Wochennavigation, A/B-Woche)
- Route /app → TimetableComponent (ehemaliges Dashboard → /app/klassen-uebersicht)
- Sidebar: Dashboard → Stundenplan mit Kalender-Icon
@simonabler simonabler linked an issue Mar 29, 2026 that may be closed by this pull request
13 tasks
claude and others added 7 commits March 29, 2026 18:53
…-validator Dekoratoren

Die Domain-DTOs haben keine @IsString/@IsUUID-Dekoratoren, weshalb
ValidationPipe(whitelist+forbidNonWhitelisted) alle Properties ablehnte.
Lösung: eigene Validation-DTOs im Server (gleiches Muster wie Note/Assessment).
Zustand 1 (keine Klassen): 3-Schritte-Führung statt leerem Grid.
  Schritt 1 → Schüler anlegen
  Schritt 2 → Fächer anlegen (Einstellungen)
  Schritt 3 → Klasse anlegen + Stundenplan einrichten (primary)

Zustand 2 (Klassen da, kein Stundenplan): Leeres Grid sofort sichtbar.
  Topbar aktiv, + Stunde eintragen klickbar, Hover-Zellen mit +.
  Kein Banner, kein erklärender Text.

Zustand 3 (Stundenplan aktiv): Unverändert – reines Grid.

Technisch: load() wird erst nach classSvc.getAll() aufgerufen
um Flicker zwischen Onboarding und Grid zu vermeiden.
Desktop (>768px): unverändertes Wochenraster Mo–Fr
Mobile (<768px):
- Tagesansicht zeigt einen Tag auf einmal
- Tag-Navigation mit Pfeiltasten (Mon→Di→...→Fr→Mon nächste Woche)
- Langer Stundenblock mit Fach, Klasse, Raum, Rhythmus
- Wochennavigation bleibt, Schuljahr-Select ausgeblendet
- 'Heute'-Button setzt auch activeMobileDay zurück
- Wochenende → zeigt Montag
@simonabler simonabler merged commit 9de6435 into master May 24, 2026
@simonabler simonabler deleted the 53-feature-stundenplan-als-dashboard branch May 24, 2026 10:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Stundenplan als Dashboard

2 participants