Änderungsprotokoll
0.5.27 (2026-07-09)
Added
Kanban-Ansicht für die Gig-Checkliste: Die Checkliste im Tab ✅ Checkliste des Gig-Detaildialogs bietet nun wahlweise eine Kanban-Board-Ansicht neben der bestehenden Listenansicht. Ein Toggle-Schalter (☰ Liste / ⬛ Kanban) im Header wechselt zwischen beiden Modi. Das Board zeigt zwei Spalten – Offen (gelb) und Erledigt (grün) – mit kompakten Karten pro Aufgabe (Titel, Kategorie- Badge, Fälligkeit, Zuständiger, Kommentar). Editors können Aufgaben direkt per Schaltfläche zwischen den Spalten verschieben.
Vergangenheitssperre – Gig-Checkliste (Frontend): Für vergangene Gigs wird der + Eintrag-Button ausgeblendet und durch einen 🔒-Hinweis ersetzt. Das Formular lässt sich auch programmatisch nicht mehr öffnen.
Vergangenheitssperre – Gig-Checkliste (Backend): Der Endpoint
POST /gigs/{gig_id}/checklistlehnt neue Einträge für vergangene Gigs mit HTTP 403 ab („Für vergangene Gigs können keine neuen Checklisten-Einträge angelegt werden.”).Vergangenheitssperre – Verfügbarkeit (Frontend): Das
AvailabilityWidgeterhält einen neuen Propreadonly. Bei vergangenen Gigs werden die Statusbuttons (Dabei / Vielleicht / Nicht dabei) sowie das Aushilfe-Formular und das Kommentarfeld ausgeblendet; stattdessen erscheint der Hinweis „🔒 Vergangenes Event – keine Rückmeldung mehr möglich.” Die bereits abgegebene eigene Rückmeldung bleibt als Badge sichtbar; die Gesamtübersicht aller Rückmeldungen ist weiterhin lesbar. DerGigDetailsModalberechnetgigIsPastund übergibt es alsreadonlyan das Widget.Vergangenheitssperre – Verfügbarkeit (Backend): Die Endpoints
PUT /availability/gig/{id}undDELETE /availability/gig/{id}lehnen Schreibzugriffe auf vergangene Gigs mit HTTP 403 ab. Proben (event_type=rehearsal) sind nicht betroffen. Lesezugriffe (GET) bleiben für alle Events uneingeschränkt.Tests – Verfügbarkeit (vergangene Gigs): Fünf neue Tests in
test_availability.pydecken die Vergangenheitssperre ab: PUT → 403, DELETE → 403, Fehlermeldung enthält „vergangen”, Proben nicht betroffen, GET weiterhin lesbar.Tests – Gig-Checkliste (neue Datei
test_gig_checklist.py): 12 Tests für GET (leer, 404, Lesezugriff auf vergangene Gigs) und POST (Erfolgsfall, vollständige Rückgabe, 404, fehlende Berechtigung, vergangener Gig → 403 mit Fehlermeldung, kein DB-Eintrag nach Ablehnung).
Changed
+ Eintrag-Button: Verwendet nun
variant-filled-primary(ohneborder) – konsistent mit anderen Hinzufügen-Buttons (z. B. im Ablaufplan).Chore: Projektversion auf
0.5.27erhöht (version.json,pyproject.toml,frontend/package.json).Manual: Changelog für Release
0.5.27ergänzt.
0.5.26 (2026-07-07)
Added
Kommentarfeld in der Gig-Checkliste: Jede Aufgabe erhält ein optionales Feld Kommentar / Ergebnis, um das Ergebnis oder Rückstände zu protokollieren. Vorhandene Kommentare werden in der Listenansicht mit 💬-Symbol angezeigt.
Datenbank: neue Spalte
comment TEXTingig_checklist_itemsvia Alembic-Migrationc3d4e5f6a1b2_add_comment_to_checklist_items.Schema:
GigChecklistItemIn/GigChecklistItemOutumcommentergänzt.
Checklisten-Detailmodal: Klick auf eine Aufgabe in der Checkliste öffnet ein Modal mit allen Details (Titel, Status, Gig, Kategorie, Zuständiger, Fälligkeit, Kommentar). Admins und Editors können darin die Aufgabe direkt erledigen oder über ein Inline-Formular bearbeiten. Das Modal ist sowohl in der Gig-Checkliste als auch im Dashboard erreichbar.
Dashboard – Tab „✅ Checkliste”: Zeigt offene Gig-Checklisten-Aufgaben, die dem eingeloggten Mitglied zugewiesen sind. Klick auf einen Eintrag öffnet das Detailmodal; Admins/Editors können Aufgaben direkt als erledigt markieren.
Dashboard – Tab „👥 Gig-Rückmeldungen”: Zeigt bevorstehende Gigs, für die noch keine Verfügbarkeitsrückmeldung abgegeben wurde. Link führt zur Gig-Übersicht.
Dashboard – Todos aus ``GET /user_todos``: Der bestehende Backend-Endpunkt liefert nun zwei zusätzliche Felder:
gig_checklist_todos– offene, dem User zugewiesene Checklisten-Aufgabenpending_gigs– Gigs ohne Verfügbarkeitseintrag des Users
Beide Felder werden in einem einzigen API-Call mitgeliefert; kein separater Request mehr nötig.
Zusätzlicher Backend-Endpunkt
GET /availability/pending_gigsbleibt weiterhin verfügbar (für externe Nutzung).
Changed
Dashboard-Hilfetext aktualisiert: beschreibt jetzt alle sechs Todo-Tabs.
Gig-Checkliste: Neue Abschnitte Kommentarfeld, Aufgaben-Detailansicht und Dashboard-Integration.
Dashboard: vollständig überarbeitet; beschreibt alle sechs Tabs, Nächste Termine, Saison-Statistiken und Kalender-Abo.
Chore: Projektversion auf
0.5.26erhöht.
0.5.25 (2026-07-07)
Added
Gig-Checkliste: Jeder Gig erhält einen neuen Tab ✅ Checkliste (Tab 6) mit einer strukturierten Aufgabenliste für die Gig-Vorbereitung. Aufgaben besitzen Titel, Kategorie, optional einen Verantwortlichen (Mitglied oder Freitext) sowie ein optionales Fälligkeitsdatum. Admins und Editors können Aufgaben anlegen, bearbeiten, löschen und als erledigt markieren; normale Mitglieder sehen die Liste in Lese-Ansicht.
Gig-Details / Tab Übersicht: Neue Karte ✅ Checkliste zeigt sofort einen Fortschrittsbalken (erledigte / offene Punkte) sowie bis zu vier offene Aufgaben als Schnellvorschau. Der Link Details → wechselt direkt in den Checklisten-Tab.
Backend: Neuer Router
/gigs/{gig_id}/checklistmit EndpunktenGET,POST,PUT /{item_id},PATCH /{item_id}/done,DELETE /{item_id}. Das Abhaken (PATCH done) setztcheck_editorvoraus.Datenbank: Neue Tabelle
gig_checklist_itemsüber Alembic-Migrationf1a2b3c4d5e6_add_gig_checklist_items;upgrade/downgradevollständig implementiert.Frontend-API: Neue Hilfsfunktionen
getGigChecklist,createChecklistItem,updateChecklistItem,toggleChecklistItemDone,deleteChecklistIteminapi.js.Manual: Neues Kapitel Gig-Checkliste im Benutzerhandbuch; Querverweise in Gigs ergänzt.
Setlisten-Sperre: Setliste und Ablaufplan eines Gigs sind nach mehr als sieben Tagen seit dem Gig-Datum für Editors gesperrt. Admins können weiterhin Änderungen vornehmen.
Backend: Hilfsfunktion
_is_setlist_lockedprüft das Gig-Datum; alle schreibenden Endpunkte (PUT /update_setlist/,POST/PUT/DELETE /schedule/) geben bei überschrittener Frist und fehlendem Admin-Recht403 SETLIST_LOCKEDzurück.Frontend: Berechneter Zustand
setlistLockedundcanEditSetlist; Button Setliste bearbeiten wird deaktiviert (🔒-Präfix, Tooltip). Im Ablaufplan-Tab erhalten Admins einen gelben Hinweis.
Mobiles Tab-Layout: Im Gig-Detail-Dialog werden die sieben Tabs auf kleinen Bildschirmen (<
sm) durch ein natives<select>-Dropdown ersetzt; auf größeren Bildschirmen bleiben die Tab-Buttons unverändert.
Changed
Chore: Projektversion auf
0.5.25erhöht (version.json,frontend/package.json).Manual: Changelog für Release
0.5.25ergänzt.
0.5.24 (2026-07-07)
Added
Verfügbarkeitsmanagement: Bandmitglieder können für jeden Gig und jede Probe ihren Teilnahmestatus hinterlegen (✅ Dabei / ❓ Vielleicht / ❌ Nicht dabei). Bei Absagen kann optional eine Aushilfe eingetragen werden – entweder als registriertes Bandmitglied (Dropdown) oder als freier Text für externe Personen.
Gig-Details / Tab Übersicht: Neue Karte 📅 Verfügbarkeit zeigt sofort beim Öffnen des Modals eine kompakte Schnellübersicht (Zähler je Status, farbige Name-Badges, eingetragene Aushilfen). Link Details → wechselt direkt in den Verfügbarkeits-Tab.
Gig-Details: Neuer Tab Verfügbarkeit (Tab 5) mit dem vollständigen
AvailabilityWidget: eigene Statuswahl, Aushilfeformular, Kommentar und vollständige Teilnehmerliste inkl. „Keine Rückmeldung”-Sektion. Die Musikerliste wird beim ersten Öffnen des Tabs nachgeladen.Proben-Details: Aufklappbarer Bereich 📅 Verfügbarkeit oben im Modal mit demselben Widget; Status- und Aushilfeänderungen werden sofort gespeichert.
Backend: Neuer Router
/availabilitymit EndpunktenGET/PUT/DELETE /availability/{event_type}/{event_id}(event_type=rehearsalodergig).Datenbank: Neue Tabelle
availabilityüber Alembic-Migratione1f2a3b4c5d6_add_availability_table;upgrade/downgradevollständig implementiert.Frontend-API: Neue Hilfsfunktionen
getAvailability,setAvailability,deleteAvailabilityinapi.js.Demo-Datenbank:
init_demo_db.pyerzeugt realistische Availability-Einträge für alle drei Gigs und die zukünftige Probe (alle Status-Varianten, externe und interne Aushilfen).Manual: Neues Kapitel Verfügbarkeitsmanagement im Benutzerhandbuch; Querverweise in Gigs und Proben ergänzt.
Changed
Chore: Projektversion auf
0.5.24erhöht (version.json,frontend/package.json).Manual: Changelog für Release
0.5.24ergänzt.
0.5.23 (2026-07-03)
Added
Abstimmungen / Meinungsumfrage: User können zu ihrer gewählten Option einen Kommentar hinterlassen. Eine Inline-Textarea erscheint direkt unter der ausgewählten Option; der Kommentar wird beim Verlassen des Feldes (
onblur) gespeichert. Bestehende Kommentare anderer User werden weiterhin in der aufklappbaren Feedback-Liste angezeigt.Abstimmungen / Terminumfrage: Neuer Kommentarbereich unterhalb der Matrix – für jeden Termin, bei dem der User abgestimmt hat, steht ein Kommentarfeld bereit. Speichern erfolgt ebenfalls
onbluroder perEnter.Abstimmungen / Terminumfrage: Grid-Zellen zeigen ein zentriertes 💬-Symbol, sobald ein Kommentar vorliegt (Desktop: in der leeren Zelle; Mobile: unterhalb des Farbfeldes).
Abstimmungen / Terminumfrage: Beim Hover über eine Zelle wird der gespeicherte Kommentar als Tooltip angezeigt (Desktop und Mobile über
title-Attribut sowiearia-label).Abstimmungen / Terminumfrage: Im Kommentarbereich zeigt die zweite Spalte ein farbiges Vote-Symbol (grün/gelb/rot gemäß Abstimmung), konsistent mit der Matrix-Darstellung.
Backend-Tests: Alle
test_admin_config-Testpayloads umdanceStylesergaenzt, das als Pflichtfeld inSoftConfigUpdateInhinzugekommen war.
Changed
Admin-Konfiguration: Das Frontend leitet
objectKeysundstringKeysjetzt dynamisch aus der API-Antwort ab, statt sie hart zu kodieren. Neue Objekt-Keys im Backend erscheinen automatisch als editierbare Sektion; nur der Typ-HinweisSTRING_KEYSbleibt im Frontend gepflegt.formstartet als leeres{}und wird vollständig vom Backend befüllt.Abstimmungen / Terminumfrage: Mobile-Layout zeigt in den Vote-Feldern nur noch die Hintergrundfarbe (kein ✓/~/✗-Symbol mehr); ein vorhandener Kommentar wird durch 💬 signalisiert.
Abstimmungen / Terminumfrage:
buildAllFeedbacks()als zentrale Hilfsfunktion extrahiert – eigene Kommentar-Drafts werden konsistent bei jedem API-Call mitgesendet.Chore: Projektversion auf
0.5.23erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.23ergaenzt; Abstimmungs-Dokumentation aktualisiert.
0.5.22 (2026-07-02)
Added
Konfiguration:
app_config.pyprüft beim Start, ob alle erwarteten Pflicht-Keys in derappConfig.jsonvorhanden sind. Fehlende Keys werden automatisch mit leeren Listen ([]) bzw. – fürsetlist_timing– mit sinnvollen Standard-Werten befüllt. Die ergänzte Konfiguration wird atomar zurückgeschrieben, sodass die Datei dauerhaft konsistent bleibt. EinWARNING-Log nennt alle automatisch ergänzten Keys.Sicherheit:
DOMPurify(dompurify ^3.4.11) integriert – Markdown-gerenderter HTML-Inhalt der Gig-Protokoll-Notizen wird vor der Darstellung bereinigt (erlaubte Tags: Überschriften, Textformatierung, Listen, Code, Links; erlaubte Attribute:href,title,target,rel).Abhängigkeiten:
@types/dompurify ^3.0.5als Dev-Dependency hinzugefügt.Styling:
@tailwindcss/typography ^0.5.20als Dev-Dependency hinzugefügt und über@plugin "@tailwindcss/typography"inapp.cssaktiviert – ermöglicht sauberes typografisches Rendering von Markdown-Inhalten.
Changed
Gig-Protokoll: Edit-Toggle im
GigDetailsModalauf Checkbox umgestellt. Statt separater Bearbeiten/Abbrechen-Buttons im Tab-Bereich steuert eineEdit-Mode-Checkbox den Editiermodus; Speichern- und Abbrechen-Buttons wurden in die modale Footer-Leiste verschoben, konsistent mit den übrigen Modal-Aktionen.Konfiguration:
_load_config_from_diskruft statt_validate_required_keysdie neue Funktion_ensure_required_keysauf, die bei fehlenden Keys nicht mehr abbricht, sondern Standardwerte einsetzt und persistiert._validate_required_keysbleibt für den Admin-Update-Pfad (update_soft_config) unverändert erhalten.Chore: Projektversion auf
0.5.22erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.22ergaenzt; Konfigurationsdokumentation um Selbstheilungs-Verhalten aktualisiert.
0.5.21 (2026-06-30)
Added
Gig-Protokoll: Neuer Tab Protokoll im
GigDetailsModalermöglicht das Erfassen und Bearbeiten von Nachbesprechungsnotizen pro Gig. Inhalte werden als Markdown gespeichert und gerendert (**fett**, kursiv, Überschriften, Listen,code).Gig-Protokoll: Neuer Backend-Endpoint
PUT /gigs/{gig_id}/notesmit Authentifizierung und Berechtigungsprüfung.Gig-Protokoll: Neues Schema-Feld
notesinGigUpdateundGigOut; HilfsfunktionupdateGigNotesin der Frontend-API ergaenzt.Gig-Protokoll: Neue Alembic-Migration
0ba4c6c97dad_add_notes_to_gigsfuegt Spaltegigs.notes TEXThinzu.Gig-Protokoll: Backend-Tests fuer den neuen Notes-Endpoint ergaenzt (Speichern, Berechtigungspruefung, leerer Inhalt).
Gig-Statistik: Neue Komponente
gigSetStatusPlot.svelte– gestapeltes Balkendiagramm Songs je Set im Statistik-Tab desGigDetailsModal. X-Achse: Set-Namen; Y-Achse: Anzahl Songs farblich unterteilt in Gespielt (blau), Eingeschoben (gruen) und Uebersprungen (gelb, negativ unterhalb der X-Achse). Unterstuetzt kompakte Zentrierung bei ≤ 8 Sets, DataZoom ab > 12 Sets sowie Dark-Mode.
Changed
Gig-Statistik: Uebersprungene Songs werden als negativer Balken unterhalb der X-Achse dargestellt (divergierendes Balkendiagramm).
Gig-Statistik: Chart-Design an den Genre-Verteilungs-Plot angeglichen (gleiche Grid-Abstände,
barMaxWidth: 26, Achsen-Styling, Legende oben, kompakte Zentrierung bei ≤ 8 Sets).Gig-Statistik: Sektion
Songs je Setwird immer angezeigt, sobald Statistikdaten geladen sind – bei fehlender Setliste erscheint ein Hinweistext statt eines leeren Bereichs.Gig-Ablaufplan: Deutschsprachige Bezeichnungen in der
GigSchedule-Komponente korrigiert.Chore: Projektversion auf
0.5.21erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.21ergaenzt.
Fixed
Public-Endpoint: Im Song-Histogramm-Endpoint (
/public/song_histogram) wurdekind_of_gigfaelschlicherweise gegen das globale statt das jahresspezifische Histogramm-Dict geprueft, was zu einemKeyErrorfuehren konnte. Korrektur: Pruefung erfolgt jetzt korrekt gegenhistogram[year].
0.5.20 (2026-06-23)
Added
Gig-Ablaufplan: Pro Eintrag kann jetzt ein optionaler Kommentar erfasst und gespeichert werden.
Datenbank: Neue Spalte
gig_schedule_items.commentinkl. Alembic-Migrationa1b2c3d4e5f6_add_comment_to_gig_schedule_items.
Changed
Ablaufplan-Ansicht: Kommentare werden im Ueberblick direkt unter dem Titel (
Was) dargestellt.Ablaufplan-PDF: Kommentare werden in der zweiten Spalte unter dem Titel gerendert; Zeilenumbrueche im Kommentar werden dabei beibehalten.
PDF-Downloadname: Unicode-faehige Normalisierung fuer Gig-Namen verbessert, ungueltige Dateinamenzeichen werden robust ersetzt.
Chore: Projektversion auf
0.5.20erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.20ergaenzt.
Fixed
Frontend:
Ablaufplan druckennutzt konsistent denBlobausgetGigSchedulePDF(statt Objekt), wodurch der FehlerFailed to execute 'createObjectURL' on 'URL'behoben ist.
0.5.19 (2026-06-23)
Added
Setup: Das Backend startet nicht mit dem standard-SECRET_KEY. Es muss einer vom Administrator definiert werden.
Changed
Setlist-Editor: Sets aus anderen Gigs koennen direkt in die aktuelle Setliste kopiert werden.
Frontend: Persistenter Store behandelt
localStorage-Fehler im Browser robust (z. B. bei deaktiviertem Storage).Abhaengigkeiten:
pyproject.tomlundrequirements.txtaktualisiert fuer verbesserte Kompatibilitaet und Performance.Frontend:
adapter-nodeauf Version5.5.4fixiert, um einen Upgrade-Fehler zu verhindern, der das Ausliefern statischer Dateien unterbunden hatte.Chore: Projektversion auf
0.5.19erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.19ergaenzt.
Fixed
Tests: Testkette fuer den neuen Auth-Flow korrigiert.
Datenbank:
published-Feld alsintstattboolgespeichert (Datenbankkompatibilitaet).
0.5.18 (2026-06-18)
Added
Proben/Songs: Zusätzliche Berechtigungspruefungen fuer Bearbeitungen eingefuehrt, damit Editor-Rechte konsistent durchgesetzt werden.
Setlisten-Editor: Hinzufügen von Sets von verganenen Gigs ermöglicht
Changed
Proben-Details und Song-Management: Bearbeitungsrechte im UI ueberarbeitet und klarer gesteuert.
Gig-Set-Management: Validierung beim Hinzufuegen/Bearbeiten von Songs erweitert und Fehlerbehandlung robuster gemacht.
UI/UX: Modale Dialoge nutzen nun ein Fullscreen-Layout fuer eine bessere Bedienbarkeit auf kleineren Ansichten.
Sicherheit/Config: Startup-Validierung fuer Umgebungsparameter ergaenzt, um Fehlkonfigurationen frueh zu erkennen.
Chore: Projektversion auf
0.5.18erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.18ergaenzt.
Fixed
Songs: Fehlende Funktion
getSongDetailsfuer das Nachladen von Song-Details ergaenzt.
0.5.17 (2026-06-16)
Added
Song-Details: Neuer Edit-Mode im
SongDetailsModalmit Speichern/Abbrechen direkt im Modal.Song-Details: Manueller Button
Metadaten abrufenim Edit-Mode; uebernimmt Dauer, Komponist, Texter und YouTube-Link ueber den bestehenden Scraper.Proben: Neues
RehearsalDetailsModalfuer eine detailreiche Probe-Ansicht;RehearsalCardoeffnet Details nun modal.Umfragen: Neues
SurveyDetailsModalfuer die kompakte Detailansicht einzelner Umfragen.Umfragen: Bestehende Umfragen koennen um neue Antwortoptionen erweitert werden.
Changed
Live-Mode: Songs koennen gezielt vor einer bestehenden Position in die Setliste eingefuegt werden.
Live-Mode: Unlock-Handling und zugehoerige UI-Rueckmeldungen verbessert.
Umfragen/Terminfindung: Layout und Responsiveness in
SurveyDetailsModalundTerminfindungViewoptimiert.Umfragen: Deutsche Texte im
SurveyDetailsModalsprachlich bereinigt.Gigs: Modal-Handling in der Gig-Verwaltung vereinfacht und ungenutzte Funktionen entfernt.
Chore: Projektversion auf
0.5.17erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.16 (2026-06-14)
Added
Backend: Neuer Endpoint
GET /csrfgibt fuer authentifizierte Clients ein CSRF-Token zurueck und erneuert das CSRF-Cookie.Setlist-Timing: Rueckgabe um
slot_durationserweitert, um effektive Slotlaengen pro Song (inkl. Inter-Song-Pausen) explizit bereitzustellen.Tests: Neue Abdeckung in
backend/tests/test_setlist_service.pyfuer die Ausgabe von Slot-Dauern inkl.00:00:00bei uebersprungenen Songs.Backend: Neue Abhaengigkeit
pathvalidateaufgenommen.
Changed
Security/Auth:
/loginund/refreshliefern nun zusaetzlichcsrf_tokenim Response-Payload fuer robustes CSRF-Handling im Frontend.Frontend-API: CSRF-Handling robustifiziert (Token-Cache, automatisches Nachladen ueber
/csrf, Retry beiCSRF validation failed, konsistente Header-Setzung fuer mutierende Requests).Setlist-Timing: Uebersprungene Songs verursachen keine Inter-Song-Pause mehr; der betreffende Slot wird als
0Sekunden gefuehrt.PDF-Export: Setlisten-PDF nutzt
slot_durationsfuer die angezeigten Songzeiten und verbessert die Durchstreichung uebersprungener Songs (kontraststark in Screen/Print).Setlist-Service:
dump_gig_structzeigt effektive Slot-Dauern im FormatHH:MM:SSstatt roher Songdauer.Frontend-UI: Layout und Responsiveness fuer Sidebar, Header/Footer, Login-Seite und globale Komponentenabstaende/-groessen ueberarbeitet.
Terminfindung (Frontend): Mobile-Ansicht von Karten auf eine kompakte, tabellarische Matrix umgestellt (inkl. klarer Trennung der eigenen bearbeitbaren Zeile, read-only Darstellung anderer Teilnehmer und uebersichtlicher Header-/Zeilenstruktur bei vielen Alternativen).
0.5.15 (2026-06-11)
Changed
Sicherheit: Logout-Blacklist-Decoding robustifiziert (korrekter
algorithms-Parameter, Logging bei Decode-Fehlern).Sicherheit: Authentifizierung auf HttpOnly-Cookies umgestellt, inkl. CSRF-Schutz (Double-Submit + Origin/Referer-Pruefung).
Sicherheit: Refresh-Token-Rotation mit Reuse-Detection eingefuehrt; bei Replay werden aktive Refresh-Tokens des Nutzers widerrufen.
Frontend: Rehearsal-Highlighting ohne
{@html}umgesetzt, um den Stored-XSS-Angriffsweg zu schliessen.Tests: Auth-Testfixturen stabilisiert, indem Rate-Limits in Test-Clients deaktiviert und pro Test sauber zurueckgesetzt werden.
Chore: Projektversion auf
0.5.15erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.14 (2026-06-11)
Changed
Setlist-Editor: Loading Spinner hinzugefügt
Top-Layout: Volles Logo in Kopfzeile
0.5.13 (2026-06-10)
Changed
Setlist-Editor: Optimistic Concurrency fuer Setlisten-Updates eingefuehrt. Vor dem Speichern wird jetzt die
setlist_versiongeprueft.Setlist-Editor: Bei Konflikten (
409 SETLIST_CONFLICT) wird der veraltete Update-Versuch abgelehnt, eine Toast-Meldung gezeigt und die Ansicht auf den aktuellen DB-Stand aktualisiert.Setlist-Editor: Undo/Redo mit Versionspruefung kompatibel gemacht, indem bei Undo/Redo immer die aktuelle Basis-Version verwendet wird.
Setlist-Editor: Regelmaessiger Hintergrund-Check auf neuere
setlist_versionin der Datenbank ergaenzt; bei externer Aenderung wird die Browser-Ansicht automatisch aktualisiert und per Toast darauf hingewiesen.Chore: Projektversion auf
0.5.13erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog fuer Release
0.5.13ergaenzt.
0.5.12 (2026-06-10)
Changed
Setlist-Editor: Undo/Redo im Editor ergaenzt (Buttons sowie Shortcuts
Strg/Cmd+ZundStrg/Cmd+Y).Setlist-Editor: Fehler-Feedback ueber Toast-Meldungen bei fehlgeschlagenem Speichern sowie Undo/Redo ergaenzt.
Setlist-Editor: Stabilitaet beim Loeschen und bei Drag-and-Drop verbessert, damit Songs nach dem Entfernen wieder sauber zusammenrutschen und Verschiebe-Aktionen als Undo-Schritt erfasst werden.
Chore: Projektversion auf
0.5.12erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.11 (2026-06-09)
Changed
Setlist-Editor: Nach dem Schliessen des Song-Details-Modals werden geaenderte Songdaten lokal uebernommen; Saengerfarben werden ohne kompletten Seiten-Reload neu gerendert.
Chore: Projektversion auf
0.5.11erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.10 (2026-06-08)
Changed
Setlist-Editor: Song details Modal in Songlist.
0.5.9 (2026-06-08)
Changed
Song-Details: Die Saenger-Vorschlagsliste wurde visuell verstaerkt (deutlicher Kontrast, nahezu deckender Hintergrund), damit Eintraege im Modal besser lesbar sind.
Songs-Liste: Laufzeitfehler beim Grid-Layout behoben (
gridApi.doLayout is not a function); Layout-Aufrufe sind jetzt API-kompatibel abgesichert.Chore: Projektversion auf
0.5.9erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.8 (2026-06-05)
Changed
Setlist-Editor: Neue Abstände für bessere Übersicht
Chore: Projektversion auf
0.5.8erhoeht (Backend/Frontend/Release-Metadaten/README-Badge).Manual: Fuer
0.5.7sind noch keine neuen Screenshots im Handbuch enthalten; diese werden zeitnah nachgereicht.
0.5.7 (2026-06-04)
Changed
Frontend-UI: Seitenuebergreifend modernisierte und vereinheitlichte Komponentenstile (Cards, Buttons, Inputs, Tabs, Tabellen) inkl. konsistenter Light-/Dark-Mode-Darstellung.
Frontend-UI: Globale Hintergrundverlaeufe fuer die App sowie abgestimmte Verlaufsflaechen in zentralen Dashboard-Bereichen ergaenzt.
Setlist-Editor: Song-Elemente in der Songliste zeigen die Saengerfarben wieder sichtbar an und sind im Darkmode kontrastreicher dargestellt.
Chore: Projektversion auf
0.5.7erhoeht (Backend/Frontend/Release-Metadaten/README-Badge).Manual: Fuer
0.5.7sind noch keine neuen Screenshots im Handbuch enthalten; diese werden zeitnah nachgereicht.
0.5.6 (2026-06-03)
Changed
Setlist-Timing: Uebersprungene Songs (
uebersprungen = true) werden in der Zeitkalkulation nun mit0Sekunden beruecksichtigt.Setlist-Timing: Berechnung von
schedule,set_endund set-uebergreifenden Pausen ist auf die neue Skip-Logik abgestimmt.Tests: Neue Abdeckung fuer den Fall, dass ein uebersprungener Song keine Laufzeit zur Setliste addiert.
Chore: Projektversion auf
0.5.6erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.5 (2026-06-03)
Added
Admin-Konfiguration:
setlist_timingist jetzt im Soft-Config-Editor direkt bearbeitbar.Admin-Konfiguration: Timing-Werte werden im Editor ueber besser lesbare Time-Picker (
HH:MM:SS) erfasst.
Changed
Soft-Config-Backend validiert und normalisiert
setlist_timinginklusive Pflicht-Keys und nicht-negativer Ganzzahlen.Setlist-Timing nutzt keine hartkodierten Defaults mehr, sondern liest die Standardwerte aus
appConfig.json(mit sicheren Fallbacks).Chore: Projektversion auf
0.5.5erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.4 (2026-06-02)
Added
Proben/Songkarte: Neue Aktion
Letzte Probeoeffnet ein Modal mit dem letzten verfuegbaren Protokoll des Songs vor der aktuellen Probe.
Changed
Protokollansicht vergangener Proben: Lesbarkeit verbessert durch hoeheren Textkontrast, entspanntere Zeilenhoehe und klar getrennte Song-Bloecke.
Status-Buttons in der Songkarte: nicht aktive Stati werden als Outline dargestellt;
retiredbleibt rot hervorgehoben.Songkarte uebergibt nun
rehearsalIdundrehearsalBeginan Kindkomponenten fuer kontextbezogene Protokollabfragen.Song-Details: Tab
Abstimmungzeigt Abstimmungen jetzt anonymisiert nur noch als Summen (Ja/Nein/Enthaltung) ohne Einzelstimmen.Chore: Projektversion auf
0.5.4erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.3 (2026-05-28)
Added
Song Tabelle im Webfrontend flexibler und Platzökonomischer gemacht
Songs API: Neuer Endpoint
GET /songs/crawler/metadataliefert Song-Metadaten (Dauer, Komponist/Texter, YouTube-Link) fuerinterpret+title.Song anlegen: Formular laedt Metadaten nun automatisch nach dem Ausfuellen von Interpret und Titel (inkl. Debounce/Cooldown und Ladeindikator).
Backend-Tests: Neue Testfaelle fuer den Metadata-Endpoint (200/404) und erweiterte
audioscrawler-Tests inklusive YouTube-Link-Aufloesung ueber Release-Kette.
Changed
backend/utils/audioscrawler.pywurde deutlich robustifiziert: besseres Matching/Scoring fuer Recordings/Works, Normalisierung von Personennamen, Fallbacks auf TheAudioDB bei MusicBrainz-Fehlern sowie YouTube-Link-Suche in Recording-, Release- und Release-Group-Relationen.Setlist-Editor: Loeschen von Songs nutzt eine ruhige zweistufige Exit-Animation (erst visuell ausblenden/nach rechts schieben, dann entfernen), um hektische Layout-Spruenge zu reduzieren.
Songs-Schema erweitert um
SongScrawlOutfuer die strukturierte Rueckgabe der Crawler-Metadaten.Chore: Projektversion auf
0.5.3erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.2 (2026-05-27)
Added
Dashboard: Neue Karten fuer
naechste Probeundnaechsten Auftrittmit Datum/Details und Direktlinks zu/probenbzw./gigs.
Changed
Bugfix: Im Setlist Editor wurde die Zeitberechnung für Datumsüberlauf sensibilisiert.
Dashboard: Saisonstatistik-Block auf eCharts umgestellt (Gigs-Fortschritt, Song-Mix, Feedback-Gauge, Genre-Top-Liste).
Chore: Projektversion auf
0.5.2erhoeht (Backend/Frontend/Lockfiles/Release-Metadaten/README-Badge).
0.5.1 (2026-05-26)
Added
Neuer Gig-Endpoint
GET /gigs/genre_paletteliefert eine globale, deterministische Genre-Farbpalette fuer konsistente Farben ueber alle Statistiken hinweg.
Changed
Genre-Farben in den Gig-/Saison-Statistikplots werden nun backend-seitig vereinheitlicht und nicht mehr pro einzelnem Datensatz lokal abgeleitet.
Genre-Palette auf bis zu 25 eindeutige Farben erweitert, bevor Farben zyklisch wiederverwendet werden.
Chore: Projektversion auf
0.5.1erhoeht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).
0.5.0 (2026-05-26)
Added
Gig- und Saison-Statistik: Neuer Feedback-Verteilungsplot (Donut) für Live-Bewertungen.
Gig- und Saison-Statistik: Genre-Visualisierung mit relativer Verteilung und normalisiertem Stacked-Bar-Verlauf.
Genre-Plot: Filter nach Veranstaltungsart in der Saisonstatistik.
Changed
Stats-Plots visuell überarbeitet: kompaktere Diagrammbereiche, bessere Achsenbeschriftung, weniger Label-Überlappungen.
Chore: Projektversion auf
0.5.0erhöht (Backend/Frontend/Lockfile/Release-Metadaten/README-Badge).Manual: Changelog um die neuen Feedback- und Genre-Auswertungen ergänzt.
0.4.6a (2026-05-23)
Fixed
Setlisteneditor: Beim Drag-and-Drop aus der Songliste in ein Set wurde der neue Song in bestimmten Fällen nicht persistiert. Der Speichern-Flow setzt nun die
song_idrobust, sodass der Eintrag zuverlässig gespeichert wird.
Changed
Projektversion auf
0.4.6aerhöht (Backend/Frontend/Release-Metadaten).
0.4.6 (2026-05-23)
Changed
Live-Modus Layout wurde für bessere Bedienbarkeit auf Bühne/Tablet überarbeitet (stabileres Höhenlayout, größere Bewertungsschaltflächen, bessere Kontraste im Light/Dark-Mode).
Song-Einfügen und Hilfe werden als Overlay dargestellt, damit die Hauptansicht ohne störendes Vertikal-Scrollen nutzbar bleibt.
Setlisteneditor: Songliste unterstützt jetzt Drag-and-Drop direkt in Sets; neue Einträge werden dabei robust als neue Set-Songs verarbeitet.
Setlisteneditor: Beim Hinzufügen aus der Songliste kann das Ziel-Set direkt gewählt werden (statt immer nur ans Ende der Setliste).
Setlisteneditor: Layout und Bedienelemente wurden für Tablet/Touch verbessert (größere Buttons, optimierte Grid-Aufteilung, bessere Sichtbarkeit von Set-/Song-Infos).
0.4.5 (2026-05-22)
Added
New backend export endpoint
GET /gigs/{gig_id}/forscore-setlistgenerates forScore-compatible.4sssetlists (PLIST XML).Gig detail view in the iOS app now includes a dedicated action to download/share
forScore-Setliste (.4ss)directly fromGigDetailView.Backend tests now cover forScore setlist export success and
404handling for unknown gigs.
Changed
Project version metadata bumped to
0.4.5across backend/frontend release files and README badge.
0.4.4 (2026-05-19)
Added
Shared utility
backend/utils/pdf_palette.pynow centralizes logo-based palette extraction for schedule and setlist PDFs.Setlist palette resolver now supports
druckfreundlichas explicit mode switch (print-friendly light palette).
Changed
Setlist PDF and schedule PDF now use the same shared palette extraction pipeline.
Palette resolvers now return robust default schemes when no logo is available.
Project, frontend and lockfile versions bumped to
0.4.4.
0.4.3 (2026-05-18)
Added
Gig edit forms now use a second-precision time picker (
HH:MM:SS) in desktop and mobile views.
Changed
Gig time values are normalized to
HH:MM:SSduring edit and save flows.Gig schedule fixed points (doors, begin, end) now support midnight rollover correctly.
Project and frontend versions bumped to
0.4.3.
0.4.2 (2026-05-17)
Added
Setlist PDF supports a second, print-friendly style via
design=print.Gig UI offers a dedicated download action for the print-friendly setlist PDF.
Setlist PDF now includes a subtle logo watermark.
New backend test for print-style setlist PDF export.
Changed
Setlist PDF visual design was aligned with the schedule PDF style.
Setlist PDF header was reduced in height to free more content space.
Setlist PDF accent colors were adjusted to orange tones matching the schedule style.
Setlist PDF footer now includes
Generated by libreStage | pakleds-patentoffice.de.Pause display in setlists moved from “before next set” to “after current set”.
Project and frontend versions bumped to
0.4.2.
v0.4.1 (2026-05-15)
Fix: Setlist-Generator - Direkter Import von timedelta am Anfang.
Setlist-Editor: Neue Shortcuts fuer schnelleres Arbeiten (u. a.
Strg/Cmd + Shift + Enterfuer neues Set am Ende)Setlist-Editor:
Enterim Suchfeld fuegt nur noch ohne Zusatz-Tasten hinzu und scrollt anschliessend automatisch ans Ende der SetlistSetlist-Editor: Shortcut zum Entfernen des letzten Songs aus dem Stack ergaenzt (
Strg/Cmd + Shift + Backspace/Entf)Setlist-Editor: Direkte Schnellwahl fuer Suchtreffer 1-4 ueber
Strg/Cmd + Opt/Alt + Shift + 1-4im SuchfeldBenutzerhandbuch: Setlist-Editor-Dokumentation an die neuen Shortcuts und das aktualisierte Suchfeld-Verhalten angepasst
v0.4.0 (2026-05-12)
Admin: Neue Seite Konfiguration unter
/admin/configzum Bearbeiten der weichenappConfig.json-Parameter direkt in der AnwendungAdmin: Neue API-Endpunkte
GET /admin/config/softundPUT /admin/config/softmit strikter Rollenpruefung (nuradmin)Konfiguration:
appConfig-Verarbeitung im Backend erweitert um Validierung, Normalisierung, atomisches Schreiben und Reload ohne NeustartFrontend: Soft-Config-Editor nutzt jetzt das zentrale Toast-System fuer Erfolg/Fehler-Hinweise statt lokaler Inline-Alerts
Frontend: Zeitstempel Stand in der Admin-Konfiguration wird im deutschen Datums-/Zeitformat angezeigt (
formatGermanDateTime)Frontend: Plus/Minus-Aktionen im Config-Editor auf die ueblichen Icon-Button-Stile vereinheitlicht
Tests: Neue Backend-Tests fuer Admin-Config-Endpunkte inkl. Auth, Validierung und Persistenz
Benutzerhandbuch: Neues Kapitel zur Admin-Konfiguration ergaenzt
v0.3.16 (2026-05-04)
Song-Vorschläge: Spalten Mein Feedback und Gesamtfeedback zur gemeinsamen Spalte Abstimmung zusammengefuehrt
Song-Vorschläge: Stimmanzeigen (Ja/Nein/Enthaltung) als klickbare Buttons umgesetzt; Musiker koennen direkt ueber die Badge-Buttons abstimmen
Song-Vorschläge: Aktive eigene Stimme wird visuell hervorgehoben
Song-Vorschläge: Mobile Darstellung der Abstimmungs-Elemente verbessert (unterhalb
mduntereinander, abmdwieder nebeneinander)Song-Details: In der normalen Detailansicht kann ein Song per Dropdown einer geplanten zukuenftigen Probe zugewiesen werden
Song-Details: Das Dropdown enthaelt eine leere Option (Keine Zuordnung), um den Song keiner Probe zuzuweisen
v0.3.15 (2026-04-18)
Songs: Beim Anlegen eines Songs prueft das Formular jetzt live die Kombination aus Titel und Interpret gegen bestehende Eintraege (inkl. kleiner Schreibabweichungen)
Songs: Bei wahrscheinlicher Dublette erscheint direkt unter Interpret ein Warning-Hinweis mit dem Status des bereits vorhandenen Songs
Songs: Das Speichern bleibt trotz Hinweis weiterhin moeglich
Benutzerhandbuch: Abschnitt
Song anlegenum die neue Dublettenwarnung ergaenzt
v0.3.13 (2026-03-16)
Proben: Beim Erstellen einer Probe kann jetzt optional eine Endzeit gesetzt werden
Proben: Wird keine Endzeit angegeben, setzt das Backend automatisch Startzeit + 2 Stunden
Proben: Validierung für Zeitbereiche ergänzt (Endzeit muss nach der Startzeit liegen)
Proben: Kartenansicht und Lösch-Bestätigung zeigen den Zeitraum (Start-Ende) statt nur Datum/Startzeit
Benachrichtigungen: Erstellungs-Text (Mattermost) zeigt den vollständigen Proben-Zeitraum
iCal: Öffentlicher Kalender-Export zeigt bei Proben den Zeitraum im Summary und in der Beschreibung
Benutzerhandbuch: Proben-Dokumentation auf das neue Zeitbereichs-Verhalten aktualisiert
v0.3.12 (2026-03-15)
Benutzerverwaltung: Benutzer können nicht mehr endgültig gelöscht werden – stattdessen wird ein Status (
active/deactivated) eingeführtBenutzerverwaltung: Neuer 🚫 Deaktivieren-Button pro Tabellenzeile deaktiviert einen Benutzer nach Bestätigung; deaktivierte Benutzer können sofort über ✅ Reaktivieren wieder freigeschaltet werden
Benutzerverwaltung: Neue Status-Spalte in der Benutzertabelle zeigt
✅ aktiv/🚫 deaktiviertfarbig anSicherheit: Beim Deaktivieren werden alle aktiven Refresh-Tokens des Benutzers sofort widerrufen → Logout aller Geräte ohne Verzögerung
Sicherheit: Jeder API-Request prüft den Benutzerstatus direkt in der Datenbank – deaktivierte Benutzer erhalten sofort HTTP 401 (kein Warten auf Token-Ablauf)
Sicherheit: Deaktivierte Benutzer können sich nicht einloggen und haben kein Stimmrecht bei Song- und Meinungsumfragen
Sicherheit: Admins können ihren eigenen Account nicht deaktivieren (Schutz vor versehentlicher Aussperrung)
Erinnerungen & Benutzerliste: Deaktivierte Musiker erhalten keine Erinnerungs- Benachrichtigungen mehr und erscheinen nicht in Auswahllisten
Datenbank: Migration
2d3e2798b7a5fügt Spaltestatus VARCHAR(32) NOT NULL DEFAULT 'active'zur Tabelleusershinzu; alle bestehenden Einträge werden automatisch aufactivegesetztBackend:
DELETE /admin/users/{id}setzt nunstatus = deactivatedstatt den Datensatz zu entfernen; neuer EndpointPUT /admin/users/{id}/activate
v0.3.11 (2026-03-15)
Benutzerverwaltung: Admins können Benutzer direkt über ein +-Formular anlegen (Username, Klarname, E-Mail, Passwort, Rolle, Musiker, Sänger)
Benutzerverwaltung: Neuer 🗑️-Button pro Tabellenzeile löscht einen Benutzer nach Bestätigung über das Standard-Bestätigungs-Modal
Benutzerverwaltung: Tabelle wird nach Anlegen und Löschen automatisch aktualisiert
Backend: neuer
DELETE /admin/users/{id}EndpointBenutzerhandbuch: Abschnitt „Benutzerverwaltung” vollständig neu dokumentiert
v0.3.10 (2026-03-15)
Live-Modus: Vorwärts-Sprung über die Setlisten-Übersicht (Shortcut
L) markiert den aktuellen Song und alle übersprungenen Songs zwischen aktuellem und Ziel-Song automatisch als übersprungen; Rückwärts-Sprünge bleiben ohne SeiteneffekteProben: Vergangene Proben werden als schreibgeschütztes Protokoll angezeigt – Probenkommentar, Songs mit Status, Todos und Kommentaren, keine Bearbeitungs-Controls
Proben: Protokoll-Ansicht verschlankt – Markdown-ähnliche Textdarstellung ohne Badges, Rahmen oder verschachtelte Listen
Proben: Suchbegriff aus der übergeordneten Suche wird im aufgeklappten Protokoll farbig hervorgehoben; separates inneres Suchfeld entfernt
Proben: Suche über alle vergangenen Proben – filtert nach Datum, Song-Titel, Interpret und Probenkommentar
Proben: Eine Probe bleibt den ganzen Probentag und den Folgetag editierbar und unter „Bevorstehende Proben” sichtbar; erst danach wechselt sie ins Protokoll
Proben: Schaltfläche „Neue Probe” als kompaktes +-Icon direkt neben der Seitenüberschrift platziert (nur für Admins/Editoren sichtbar)
v0.3.9 (2026-03-14)
Song-Vorschläge: Abstimmungsanzeige als kompakte Badge-Zeile überarbeitet – Ja/Nein/Enthaltung mit absoluten Werten und Prozentzahlen direkt sichtbar, kein Hover mehr erforderlich
Song-Vorschläge: Quorum-Kriterium eingeführt –
max(3, floor(n × 0,75))Stimmberechtigte müssen abgestimmt haben, bevor der Übernahme-Button erscheintSong-Vorschläge: Übernahme-Button (✓, grün) erscheint für Admins/Editoren sobald Quorum erreicht und ≥ 50 % Ja-Stimmen vorliegen; kein Button solange das Quorum nicht erfüllt ist
Song-Vorschläge: Anzeige „∑ abgegeben / gesamt” zeigt Abstimmungsfortschritt; Quorum-Detail im Tooltip
Song-Vorschläge: „(n f. Quorum)”-Texthinweis entfernt – Layout schlanker
Benutzerhandbuch: Abschnitt „Song-Vorschläge & Abstimmung” vollständig neu dokumentiert
v0.3.5 (2026-03-10)
Setlist-Editor: Bug-Fix beim Hinzufügen mehrerer Sets ohne Seitenreload
Setlist-Editor: Rename-Funktion für Sets stabilisiert
Frontend auf Svelte 5 / Skeleton 4.12.1 migriert
Zeitraum-Generierung im Gig-Formular korrigiert
v0.3.0
Live-Modus: Swipe-Navigation auf Mobilgeräten
Live-Modus: Song-Bewertung (😞 / 😐 / 😊)
Song-Statistiken: Proben- und Gig-Historie
GEMA-Export: übersprungene Songs werden ausgeschlossen
v0.2.0
Saison-Statistiken im Dashboard
Abstimmungs-System (Meinungsumfrage, Terminfindung, Auftrittsanfrage)
Passwort-Stärke-Validierung
Rate-Limiting auf sicherheitskritischen Endpoints
v0.1.0
Initiale Veröffentlichung
Gig-Verwaltung mit Setlist-Editor
Song-Datenbank, Proben-Planung
Benutzerverwaltung mit Rollen (admin / editor / musician)
iCal-Export, PDF-Generierung