Releases: juwagn/curriculr-terminplan
Release list
v4.34.0 — Kategorien: Planner ist alleinige Quelle
Kategorien: Planner ist alleinige Quelle
- [FIX] Kategorien-Sync: Planner ist jetzt alleinige Quelle — Kategorien ohne Planner-Gegenstück werden beim Push entfernt statt dauerhaft mitgeführt (WP-Stichwörter bei getroffenen Kategorien bleiben erhalten)
v4.33.0 — Gruppen-Filter, Kategorien-Sync & Auto-Provision
Gruppen-Filter, Kategorien-Sync & Auto-Provision
- [NEU] Gruppen-Filter im Terminplan: Kolleg:innen können auf der öffentlichen Seite und in den Kiosk-Ansichten nach Planner-Gruppen (z. B. Eltern, Kollegium) filtern
- [NEU] Kategorien-Sync: Labels und Farben aus dem Planner überschreiben beim Senden automatisch die Plugin-Kategorien — Stichwörter fürs IServ-Matching bleiben erhalten
- [NEU] Neue Schuljahre aus dem Planner werden automatisch mit allen Gruppen-Kalendern angelegt (max 7)
- [UX] Schuljahr-Karte warnt, wenn Planner-Gruppen ohne eigenen Kalender sind
- [FIX] Gruppen-Filter deckt jetzt auch lange Termine (Hinweise-Spalte), die Jahresansicht und das mobile Auf-/Zuklappen ab
v4.32.0 — Autor-Anzeige auf der Schuljahr-Karte
Autor-Anzeige auf der Schuljahr-Karte
- [UX] Schuljahr-Karte zeigt jetzt zusätzlich, wer zuletzt gespeichert hat (Autor + Version) — bisher nur Zeitstempel ohne Person
v4.29.0 — Security-Härtung & Design-Transfer
Sicherheit
- DSGVO: Google-Fonts-Import entfernt — Inter wird jetzt self-hosted aus
assets/fonts/geladen (keine IP-Übertragung an Google mehr) - App-Token-Verify prüft jetzt
iss/aud-Claims; Guard antwortet 401 statt 403 - REST-PUT & manueller Doc-Upload: Tiefenvalidierung je Event — kaputte Events können den öffentlichen ICS-Feed nicht mehr mit 500 lahmlegen (defensives
build_event) - Speichern ist atomar: gleichzeitiges Speichern zweier Nutzer erzeugt zuverlässig einen 409-Konflikt statt stillem Überschreiben
- Kiosk-/Entwurf-Seiten senden
Referrer-Policy: no-referrer(Token in URL) - Backup-Cron löscht Dateien älter als 30 Tage (DSGVO-Speicherbegrenzung);
index.html-Schutz neben.htaccess
Design
- Design-Transfer aus dem Curricu:lr Planner: Die Terminplan-Ansicht folgt jetzt den zentralen Design-Tokens — Marine-Farbtöne, Inter-Schrift, Planner-Radien — inklusive Dark Mode
- Fehler- und Hinweisboxen nutzen einheitliche, Theme-fähige CSS-Klassen statt fest verdrahteter Inline-Farben
Intern
- Feedback-Log löscht Einträge älter als 90 Tage automatisch
- Schuljahr-Liste ohne N+1-Datenbankabfragen
Installation: ZIP im WP-Admin hochladen (Plugins → Installieren → Plugin hochladen).
v4.28.1 — Kiosk-CSP-Fix (Security)
Kiosk-CSP-Fix (Security)
- [SECURITY] Entwurf-Kiosk-Template: CSP frame-ancestors + X-Frame-Options SAMEORIGIN tatsächlich ergänzt — der 4.27.2-Eintrag dafür war nie committed worden, Server-/Host-Default blockierte weiterhin das IServ-iframe-Embedding
v4.28.0 — Manueller Planungsdokument-Upload
Manueller Planungsdokument-Upload
- [NEU] Schuljahr-Karte: manueller Planungsdokument-Upload (JSON) als Alternative zu IServ-SSO — inkl. "Sichern ↓"-Download des aktuellen Stands vor dem Überschreiben
v4.27.1 — Schuljahre-Tab: Status umschaltbar
Schuljahre-Tab: Status umschaltbar
- [FIX] Schuljahre-Tab (v2): Kalender-Status (Entwurf/Beschlossen) war seit 4.24.0 nur Text-Anzeige — Umschalten fehlte, Entwurf-Kiosk dadurch für neue/synchronisierte Schuljahre unerreichbar
v4.27.0 — Kategorien-Import aus dem Planner
Kategorien-Import aus dem Planner
- [NEU] Kategorien-Tab: Kategorien aus einem Planner-Schuljahr übernehmen (Label/Farbe je Kategorie werden übernommen, WP-seitige Stichwörter für das IServ-Keyword-Matching bleiben unverändert)
v4.26.0 — Schuljahre-Redesign & Status-Anzeige
Was ist neu
Admin-Oberfläche aufgeräumt: 4 → 3 Tabs
Kiosk-Tab in System integriert — Entwurf-Vorschau und IServ-Einbettung erscheinen jetzt als erster Abschnitt im System-Tab. Alte ?tab=_kiosk-Lesezeichen leiten automatisch auf ?tab=_system weiter.
„Schuljahr-Profile" → „Schuljahre"
Klarere Benennung — Tab und Überschrift zeigen jetzt „Schuljahre".
Technische Details versteckt
- Schuljahr-ID nicht mehr sichtbar in der Karte — hinter „Erweitert" ausklappbar
- Neues Schuljahr anlegen: nur noch Label-Feld sichtbar, Schlüssel optional hinter „Erweitert" (wird sonst automatisch aus dem Label abgeleitet)
Veröffentlichungs-Status direkt in der Schuljahr-Karte
Neue Status-Anzeige zeigt Entwurf / Intern / Öffentlich plus Zeitpunkt der letzten Übertragung vom Planner — auf einen Blick, ohne den Planner öffnen zu müssen.
UX-Verbesserung
„Als aktiv setzen" → „Als aktives Schuljahr setzen" mit Erklärungstext, welche Auswirkung das hat (Anzeige auf der Schulwebsite).
Deployment
- ZIP in WP Admin → Plugins → Plugin aktualisieren hochladen
- Tab „Schuljahre" prüfen (vorher „Schuljahr-Profile")
- Status-Badge in Schuljahr-Karte erscheint automatisch, sobald ein Terminplan aus dem Planner gesendet wurde
Abwärtskompatibilität
Bestehende IServ-Feed-Abos, Schuljahr-Daten und laufende Terminpläne bleiben unverändert gültig. Keine DB-Schema-Änderung, keine REST-API-Änderung.
Passende SPA-Version: v1.11.0
v4.25.0 — Schuljahr löschen
Schuljahr löschen
- [NEU] Schuljahr löschen: nicht-aktive Schuljahre inkl. DB-Daten und ICS-Cache entfernbar
- [UX] Danger-Zone als -Element — zweistufige Bestätigung ohne nativen confirm()-Dialog