All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 54s
- Changed file permissions from 644 to 755 for various files in the mobile-app and mobile-app_legacy_rn_expo directories, ensuring executable permissions where necessary. - Added a new SQL migration script to the backend to introduce missing columns for club billing and invoice settings in the clubs table, maintaining synchronization with the current Sequelize model.
5.7 KiB
Executable File
5.7 KiB
Executable File
Club-Produkt: Ausbau und Absicherung
Stand: 2026-06-25
Ziel
Die vorhandenen Club-Module sollen nicht mehr nur "vorhanden", sondern im Alltag stabil und nachvollziehbar nutzbar sein. Der Schwerpunkt liegt jetzt auf zwei Dingen:
- Ausbau der noch klar erkennbaren Restthemen.
- Absicherung der bereits fertig wirkenden Arbeitsbereiche gegen Kantenfaelle, Rechteprobleme und unklare Zustande.
Aktueller Fokus
- Kommunikation
- Historie
- Archiv
- Restliche Club-UI-Absicherung in den Kernviews
- Danach erst das
mein-tt.de-Produkt inhaltlich weiter ausbauen
Arbeitsreihenfolge
Phase 1: Absicherung der bestehenden Club-Views
Status: in Arbeit
Ziel:
- Keine haengenden Formulare bei Reload, Clubwechsel oder Auswahlwechsel.
- Read-only-Zustaende sind sichtbar und verhindern keine Navigation.
- Lade- und Fehlermeldungen sind konsistent und eindeutig.
Konkrete Teilaufgaben:
ClubTasksView.vue: Sicherstellen, dassselectedTaskundformbeim Clubwechsel, bei leerer Liste und nach Loesch-/Archivaktionen sauber getrennt werden.ClubCommunicationView.vue:selectedThread,threadForm,groupForm,templateFormundmessageFormbeim Clubwechsel und nach Auswahlwechseln komplett zuruecksetzen.ClubAccountsView.vue:selectedAccount,selectedTransaction,formundtransactionFormin jedem Ruecksprung sauber bereinigen.ClubInvoicesView.vue:selectedInvoice,selectedParty,invoiceFormundpartyFormbeim Clubwechsel und bei leeren Selektionen auf Default bringen.- Read-only-Hinweise auf jeder der vier Views vereinheitlichen, damit ein Nutzer mit fehlenden Rechten nicht erst in die Formulare klickt, um zu merken, dass keine Bearbeitung moeglich ist.
- Ladezustände und Fehlerbanner auf eine einheitliche Form bringen, damit Reload und Fehlerfall nicht unterschiedlich wirken.
- Ein kurzer Smoke-Check je View nach der Aenderung: Liste laden, Element auswaehlen, Auswahl loeschen, Club wechseln, erneut laden.
Gepruefte Kantenfaelle:
- Club wird gewechselt, waehrend ein Detailformular offen ist.
- Datenquelle liefert eine leere Liste und der zuletzt selektierte Datensatz existiert nicht mehr.
- Nutzer hat nur Leserechte, soll aber trotzdem eine klare Orientierung haben.
- Reload erfolgt waehrend ein Formular bereits mit Daten befuellt ist.
Fertig, wenn:
- Die vier Kernviews ohne manuelle Nacharbeit zwischen Liste, Detail und Neu-Anlage wechseln.
- Beim Clubwechsel keine Formularwerte aus dem vorherigen Club sichtbar bleiben.
- Read-only-Nutzer die Bereiche verstehen, ohne in kaputte Aktionen zu laufen.
Phase 2: Kommunikation produktiv absichern
Ziel:
- Nachrichtenfluss nicht nur funktional, sondern praxisnah robust machen.
Arbeitspakete:
- SMTP real testen, inklusive Zustellprotokoll und Fehlerfaelle.
- Optional Reply-To pro Verein oder Kommunikationsvorlage sauber ergaenzen.
- Dokumentanhaenge fuer Nachrichten und Vorlagen einfuehren.
- Serienvorlagen und wiederkehrende Nachrichtentypen vorbereiten.
Fertig, wenn:
- Eine Testzustellung je Verein reproduzierbar gelingt.
- Fehlende SMTP-Konfiguration klar und frueh sichtbar wird.
- Nachrichten mit Anhaengen und Vorlagen ohne Sonderlogik im Alltag einsetzbar sind.
Phase 3: Historie und Archiv vertiefen
Ziel:
- Vergaengliche Vorgange muessen spaeter besser auffindbar und nachvollziehbar sein.
Arbeitspakete:
- Historie nach Modulen und Vorgangstypen filtern.
- Historie exportierbar machen.
- Historie mit Zielobjekten und Querverweisen versehen.
- Archiv um weitere Entitaeten erweitern.
- Archivsuche und Schnellfilter verbessern.
Fertig, wenn:
- Vorstand oder Verwaltung einen Vorgang aus Historie oder Archiv ohne Umweg wiederfinden kann.
- Wichtige Clubobjekte nicht nur archiviert, sondern auch wieder auffindbar und verlinkt sind.
Phase 4: Restliche Club-UX verdichten
Ziel:
- Das Dashboard und die Detailmodule sollen gleiche Sprache sprechen.
Arbeitspakete:
- Dashboard-Schnellzugriffe weiter auf Tagesgeschaeft trimmen.
- Verlinkungen zwischen Dashboard, Mitgliedern, Zahlungen, Kommunikation und Archiv schaerfen.
- Kleine Inkonsistenzen in Statusworten, Akzentfarben und Listenlabels bereinigen.
Fertig, wenn:
- Der Einstieg immer zur naechsten sinnvollen Aktion fuehrt.
- Die wichtigsten Statuswerte nicht doppelt oder widerspruechlich gezeigt werden.
Phase 5: Player-Produkt erst danach
Ziel:
mein-tt.debekommt nur dann neue Inhalte, wenn die Club-Seite stabil ist.
Arbeitspakete:
- Anforderungen fuer Spieleransichten separat sammeln.
- Keine Club-spezifischen Workflows mehr in das Player-Produkt ziehen.
- Neue Spielerfeatures nur gegen eigene Prioritaeten und nicht als Restverwertung der Club-Roadmap planen.
Nicht als naechstes anfassen
- Generelles Beitrags- und Tarifsystem mit Familienlogik, Alterslogik und Gueltigkeitszeitrainen.
- Weitere grosse Produktumbauten ohne klaren Nutzen fuer den Club-Alltag.
- Zusätzliche Club-Module, solange die bestehenden Workflows noch nicht absicherungsfest sind.
Konkrete naechste Tickets
- SMTP-Test fuer Kommunikation mit realer Zieladresse und dokumentiertem Ergebnis.
- Dokumentanhaenge fuer Kommunikation und Vorlagen.
- Historie: Filter und Export.
- Archiv: weitere Objektklassen und Suche.
- Club-UI-Smoke-Check fuer Aufgaben, Kommunikation, Konten und Rechnungen.
Abhaengigkeiten
- SMTP-Test braucht eine real erreichbare Versandkonfiguration.
- Historie-Export braucht klare Zielobjekt- und Filterdefinitionen.
- Archiv-Erweiterungen sollten auf bereits vorhandene Dokument-, Rechnungs- und Beitragsdaten aufsetzen.
Erwartetes Ergebnis
Nach dieser Runde sind die Club-Bereiche nicht nur vorhanden, sondern im Alltag kontrollierbar, nachvollziehbar und ausreichend robust fuer den produktiven Einsatz eines Vereins. Danach kann der Fokus auf neue inhaltliche Produktarbeit wechseln.