48 Commits

Author SHA1 Message Date
Matthias Nagel
b1d5b871ab Ein und ausklappen der events 2025-11-25 22:21:28 +01:00
Matthias Nagel
9ca8df54b6 Maybe button hinzugefügt 2025-11-25 21:37:18 +01:00
Matthias Nagel
9f8738355f Bugfix in Zeitlocaloisierung der Kinder 2025-11-25 21:25:45 +01:00
2ad895ae1b whitespaces.... 2025-11-23 18:38:58 +01:00
a57ffcdfd7 fixed missing import 2025-11-23 18:38:40 +01:00
ea223812cc Revert "tralala"
This reverts commit fd47f25c36a67948a038fbd0121fa2e0e885d584.
2025-11-23 17:59:04 +01:00
Matthias Nagel
fd47f25c36 tralala 2025-11-23 17:38:43 +01:00
Matthias Nagel
bc4b8a1e7f Feat: Implementierung des Spieler- und Eltern-Verifizierungsprozesses
Fügt einen umfassenden Verifizierungsprozess für neu erstellte Spieler
und zugeordnete Eltern hinzu. Dies ersetzt das frühere Einladungscode-System.

Wesentliche Änderungen:
- **`CustomUser` Modell:** Erweitert um `is_verified` (Standard `False`) und
  `verification_code` (UUID) Felder. `is_active` ist nun standardmäßig `False`
  bis zur Verifizierung. Das `InvitationCode`-Modell wurde entfernt.
- **E-Mail-Utility (`accounts/utils.py`):** Eine neue Funktion `send_verification_email`
  sendet oder simuliert E-Mails (basierend auf `settings.MTP_EMAIL_SEND`).
  Simulierte E-Mails werden im `.mbox`-Format in `tmp_mails/` gespeichert.
- **`settings.py`:** `DEFAULT_FROM_EMAIL` wurde hinzugefügt.
- **`PlayerCreateView` (`accounts/views.py`):**
    - Generiert `verification_code` für neue Spieler und Eltern.
    - Setzt das Passwort für neue Benutzer auf unbrauchbar (`set_unusable_password`).
    - Löst den Versand von Verifizierungs-E-Mails aus.
- **`verify_account` View (`accounts/views.py`):**
    - Eine neue View, die über einen Link in der E-Mail aufgerufen wird.
    - Ermöglicht Spielern, ein Passwort festzulegen.
    - Ermöglicht Eltern, einen eindeutigen Benutzernamen und ein Passwort festzulegen.
    - Setzt `is_active` und `is_verified` auf `True` und invalidiert den
      Verifizierungscode nach erfolgreicher Einrichtung.
    - Loggt den Benutzer nach erfolgreicher Verifizierung direkt ein und zeigt
      eine Erfolgsmeldung an.
    - Behebt ein Problem bei der Bestimmung von Eltern-Benutzern.
- **Formulare (`accounts/forms.py`):** Neue `PlayerVerificationForm` und
  `ParentVerificationForm` für den Verifizierungsprozess.
- **E-Mail-Templates:** Neue Text- und HTML-Templates für Spieler- und
  Eltern-Verifizierungs-E-Mails (`accounts/templates/accounts/email/`).
- **Verifizierungs-Template:** Neues Template für die Verifizierungsseite
  (`accounts/templates/accounts/verify_account.html`).
- **URLs (`accounts/urls.py`):** Entfernung der alten `invitation_code` und
  `register` URLs, Hinzufügung der neuen `verify_account` URL.
- **Datenbankmigrationen:** Migrationen für die Änderungen am `CustomUser`-Modell
  erstellt und angewendet.
- **Temporäres Verzeichnis:** `tmp_mails/` Verzeichnis für E-Mail-Simulation erstellt.
2025-11-23 16:34:25 +01:00
Matthias Nagel
5cc9b387b9 Feat: Saison-Report für Head Coaches
Implementiert einen druckbaren Saison-Report für Head Coaches, der eine
Übersicht über die Spielerteilnahme an allen Spielen einer ausgewählten
Saison bietet.

Wesentliche Änderungen:
- **Neue URL und View (`season_report` in `team_stats/views.py`):**
  Empfängt `team_id` und `season`, holt Spieler, Spiele und deren
  Teilnahmestatus und bereitet die Daten auf. Enthält eine
  Berechtigungsprüfung für den Head Coach.
- **Neue Vorlage (`team_stats/templates/team_stats/season_report.html`):**
  Zeigt eine Tabelle mit Spielen als Zeilen und Spielern als Spalten an.
  Teilnahmestatus wird mit Symbolen (✔, ✖, ?) dargestellt. Enthält
  druckspezifisches CSS, um die Lesbarkeit und das Seitenlayout für DIN A4
  (Querformat) zu optimieren, inklusive vertikal gedrehter Spielernamen in
  der Kopfzeile zur Platzersparnis.
- **Integration (`team_statistics.html`):** Ein "Saison-Report generieren"-Button
  wurde zur Team-Statistikseite hinzugefügt, der den Report für die
  aktuell ausgewählte Saison öffnet.
2025-11-23 14:33:56 +01:00
Matthias Nagel
d45fc54280 Feat: Wiederkehrende Trainingsevents
Fügt die Funktionalität hinzu, wiederkehrende Trainingsevents zu erstellen,
zu verwalten und zu löschen. Ein Coach kann nun ein Training erstellen,
das sich alle X Tage bis zu einem bestimmten Enddatum wiederholt.

Wesentliche Änderungen:
- **Datenmodell ():** Das -Modell wurde um Felder
  für die Wiederholung (, ,
  ) und zur Gruppierung von Serien ()
  erweitert.
- **Formulare ():** Das Formular zur Erstellung von Trainings
  wurde um die neuen Wiederholungsoptionen erweitert.
- **Views:**
    - : Die Logik wurde erweitert, um beim Speichern
      eines wiederkehrenden Events automatisch alle zukünftigen Instanzen
      der Serie zu erstellen.
    - : Bietet nun die Möglichkeit, entweder nur ein
      einzelnes Event einer Serie oder die gesamte Serie zu löschen.
- **Templates:**
    - : Enthält jetzt die neuen Formularfelder mit
      JavaScript, um die Wiederholungsoptionen dynamisch ein- und
      auszublenden.
    - : Zeigt eine Auswahlmöglichkeit für den
      Löschumfang an, wenn das Event Teil einer Serie ist.
- **Migration:** Eine neue Datenbankmigration wurde erstellt, um die
  Änderungen am -Modell anzuwenden.
2025-11-22 21:34:04 +01:00
Matthias Nagel
223dd65382 Fix: Chronologische Sortierung der Events im Dashboard
Stellt sicher, dass die Event-Listen ('Your Events' und 'Children Events')
im Dashboard konsistent chronologisch nach dem  sortiert sind.

Obwohl die Datenbankabfragen bereits eine Sortierung enthielten, ging diese
durch die anschließende Verarbeitung in Python-Listen verloren. Die Listen
werden nun nach ihrer Erstellung explizit in Python sortiert.

Änderungen:
- Die -Liste wird nach ihrer Befüllung nach
   sortiert.
- Die  für jedes Kind wird ebenfalls nach
   sortiert, bevor sie dem Kontext hinzugefügt wird.
2025-11-21 23:03:44 +01:00
Matthias Nagel
20075fbe1f Fix: Behebung von Fehlern im Abstimmungs-Feature
Behebt zwei Fehler im kürzlich implementierten Abstimmungs-Feature:
1.  **Fehler bei Mehrfachauswahl:** Ein logischer Fehler in der -View, der
    beim Abstimmen bei Multiple-Choice-Umfragen auftrat, wurde behoben.
    Die inkorrekte Verwendung von  wurde durch eine
    korrekte Iteration ersetzt, die den Benutzer aus den  der
    einzelnen Auswahlmöglichkeiten entfernt.
2.  **Anzahl der Auswahlmöglichkeiten:** Das Formular zur Erstellung von
    Umfragen zeigte nur zwei Felder für Auswahlmöglichkeiten an. Dies wurde
    korrigiert, sodass nun, wie gefordert, bis zu fünf
    Auswahlmöglichkeiten eingegeben werden können.

Änderungen:
- Korrektur der Logik zum Zurücksetzen von Stimmen in  für
  Mehrfachauswahl-Umfragen.
- Anpassung des  in , um die Anzahl der
  angezeigten Auswahlfelder auf 5 zu erhöhen.
2025-11-21 22:58:38 +01:00
Matthias Nagel
001444e0dd Feat: Implementierung des Abstimmungs-Features (Polls)
Fügt ein neues Abstimmungs-Feature hinzu, das es Head Coaches ermöglicht,
Umfragen innerhalb ihres Teams zu erstellen und zu verwalten.
Teammitglieder können Umfragen ansehen und daran teilnehmen.

Wesentliche Änderungen:
- **Neue 'polls'-App:** Enthält Modelle, Formulare, Views und Templates.
- **Modelle  und :** Definieren die Struktur für Umfragen
  (Frage, Team, Ersteller, Mehrfachauswahl-Option) und die Auswahlmöglichkeiten
  (Text, Stimmen).
- **Formulare  und :** Für die Erstellung von Umfragen
  und deren Auswahlmöglichkeiten.
- **Views:**
    - : Zeigt alle für den Benutzer relevanten Umfragen an.
    - : Ermöglicht Head Coaches das Erstellen neuer Umfragen
      (inkl. Fehlerbehebung bei der Formularinitialisierung).
    - : Zeigt Details einer Umfrage an und ermöglicht die
      Stimmabgabe.
    - : Zeigt die Ergebnisse einer Umfrage an.
    - : Funktion für die Stimmabgabe.
- **Templates:** Spezifische Templates für alle Umfrage-Views.
- **URL-Konfiguration:** Neue URLs für die 'polls'-App und Einbindung in die
  Haupt-URL-Konfiguration.
- **Navigationslink:** Ein neuer Link 'Polls' in der Hauptnavigation für
  authentifizierte Benutzer.
- **Migrationen:** Datenbankmigrationen für die neuen - und -Modelle.
2025-11-21 22:55:07 +01:00
Matthias Nagel
cb08474301 Fix: EventUpdateView - Formular mit bestehenden Daten vorbefüllen
Behebt einen Fehler in der , bei dem beim Bearbeiten
eines Events (Spiel oder Training) das Formular leer angezeigt wurde
anstatt mit den vorhandenen Daten des Events vorbefüllt zu sein.

Die Ursache war eine Inkonsistenz bei der Übergabe der Modellinstanz:
Die  erhielt ein übergeordnetes -Objekt, während die
 für  oder  eine spezifische Child-Instanz
erwartete.

Änderungen:
- Überschreibung der Methode  in , um die
  korrekte untergeordnete Instanz ( oder ) des Events
  abzurufen und an das Formular zu übergeben.
- Aktualisierung der Methode  in  zur
  Verwendung von  für eine robustere Typüberprüfung des
  Objekts.
2025-11-20 08:54:28 +01:00
Matthias Nagel
fb782d85db Feat: Supporter-Team-Statistiken in der Team-Statistikansicht
Erweitert die Team-Statistikansicht um zwei neue Metriken:
- 'Games with Supporters': Zeigt die Anzahl der Spiele an, die mit Unterstützung
  durch ein zweites Team (Supporter-Team) stattgefunden haben.
- 'Avg. Supporter Share': Berechnet den durchschnittlichen Prozentsatz der
  Spieler, die in diesen Spielen vom Supporter-Team gestellt wurden.

Diese Statistiken helfen, den Grad der Abhängigkeit von externer Spielerunterstützung
zu analysieren. Die Anzeige erfolgt in einer neuen Karte auf der Team-Statistikseite.

Änderungen umfassen:
- Anpassung der Funktion  in
  zur Berechnung der neuen Metriken unter Berücksichtigung von
   und .
- Erweiterung des Templates
  um eine neue 'Supporter Stats'-Karte zur Anzeige der berechneten Werte.
2025-11-19 21:14:21 +01:00
Matthias Nagel
a37954de65 Feat: Spiele-Historie-Ansicht für alle Team-User
Fügt eine neue Seite 'Spiele-Historie' hinzu, die allen Nutzern, die mit
einem oder mehreren Teams in Verbindung stehen (als Spieler, Head Coach,
Assistant Coach oder Elternteil), eine Übersicht über vergangene Spiele
ihrer Teams bietet. Die Spiele sind pro Team aufgeschlüsselt und zeigen
detaillierte Scorelines inklusive Inning-Ergebnissen an.

Änderungen umfassen:
- Neue View  in  zur Ermittlung der
  zugehörigen Teams und Abfrage der Spielhistorie.
- Aktualisierung der  in der View, um Inning-Scores auf 9
  Einträge aufzufüllen und so die Template-Logik zu vereinfachen.
- Neue URL-Konfiguration in .
- Neues Template  für die
  Darstellung der Spielhistorie mit detaillierter Scoreline pro Inning.
- Ergänzung eines Navigationslinks in  für
  authentifizierte Benutzer.
2025-11-19 10:00:58 +01:00
Matthias Nagel
c63ad532b5 Feat: Implementiere Team-Statistiken für Unterteams und Saisonauswahl
Erweitert die Team-Statistikansicht, sodass Head Coaches von übergeordneten Teams
auch die Statistiken ihrer untergeordneten Teams einsehen können.
Jedes Team wird mit seinen eigenen Statistiken separat dargestellt.
Zusätzlich wurde eine Filterfunktion implementiert, die es ermöglicht,
die Statistiken nach Saison zu filtern.
2025-11-19 08:43:44 +01:00
Matthias Nagel
9cfe5e50c4 bugfix für statistiken 2025-11-19 08:24:26 +01:00
Matthias Nagel
f18ced6570 korektur 2025-11-19 06:49:43 +01:00
Matthias Nagel
12aeb2567f Fix: Inkonsistente Datenstruktur für Inning-Ergebnisse
Die Datenstruktur für die Inning-Ergebnisse (`inning_results`) war in der `record_results`-View (`calendars/views.py`) und der `team_statistics`-View (`team_stats/views.py`) inkonsistent.

In `calendars/views.py` wurde eine verschachtelte Struktur mit `inning_` als Schlüssel verwendet, während in `team_stats/views.py` eine Struktur mit 'home'- und 'away'-Listen erwartet wurde.

Diese Inkonsistenz führte dazu, dass die Inning-Ergebnisse in der Team-Statistik nicht korrekt angezeigt wurden.

Der Fix vereinheitlicht die Datenstruktur, sodass die `record_results`-View die Ergebnisse in dem von der `team_statistics`-View erwarteten Format speichert. Zudem wurde die Logik zum Laden der Formulardaten in `record_results` angepasst.
2025-11-19 06:05:14 +01:00
Matthias Nagel
56e7393524 feat: Team-Statistik-Dashboard für Headcoaches
Fügt eine neue Seite hinzu, auf der Headcoaches Statistiken für ihre Teams einsehen können.

Die Statistikseite umfasst:
- W-L-Bilanz, Siegquote (PCT) und aktuelle Serie
- Balkendiagramm für erzielte und zugelassene Runs (RS vs. RA)
- "Luck-O-Meter" zum Vergleich der realen und pythagoreischen Siegquote
- Inning-Heatmap zur Anzeige der erzielten Runs pro Inning

Die Seite ist über einen neuen Button auf dem Dashboard für jedes vom Headcoach trainierte Team erreichbar.
2025-11-19 05:31:52 +01:00
Matthias Nagel
aba0533b82 playerlist 2025-11-19 05:14:26 +01:00
Matthias Nagel
1c13f65b64 neue dbs 2025-11-19 04:51:12 +01:00
Matthias Nagel
bf03a6bdb4 cleanup cache 2025-11-19 04:50:03 +01:00
Matthias Nagel
b21a8cd914 gitignore 2025-11-19 04:47:44 +01:00
Matthias Nagel
43cc7fb1eb addign gitifgnoie 2025-11-19 04:46:17 +01:00
Matthias Nagel
ef7f93884f vererbung von teams implementiert 2025-11-19 04:33:49 +01:00
Matthias Nagel
baf9727a37 Ein paar bugfixes 2025-11-18 23:04:42 +01:00
Matthias Nagel
9b2d00106f feat: Ausblenden vergangener Termine im Dashboard 2025-10-02 21:42:46 +02:00
Matthias Nagel
4b350ff5c6 feat: Scoreboard-Layout-Verbesserungen und automatische Ergebnisberechnung 2025-10-02 16:38:50 +02:00
Matthias Nagel
ec07bfc53b feat: Implementierung von Spielergebnissen, Heimspiel-Status und Zeitzonen-Fix 2025-10-02 16:25:20 +02:00
Matthias Nagel
450d3597d2 feat: Implementierung des 'Heimspiel'-Status für Spiele 2025-10-02 14:04:17 +02:00
Matthias Nagel
cebda0838b docs: Erstellung des Projekt-Logbuchs 2025-10-02 12:55:15 +02:00
Matthias Nagel
125bea954c feat: Implementierung der 'Spiel öffnen'-Funktionalität und erweiterte Dashboard-Anzeige 2025-10-02 12:50:47 +02:00
Matthias Nagel
0d5357793e feat: Implementierung der 'Spiel öffnen'-Funktionalität und Fehlerbehebungen 2025-10-01 14:35:31 +02:00
Matthias Nagel
84a37206fd feat: Anzeige des Gegners für Spiel-Termine auf dem Dashboard 2025-10-01 14:16:02 +02:00
Matthias Nagel
852c776879 feat: Erweiterung der Dashboard-Anzeige für Trainer um Spieler-Teilnahmestatus 2025-10-01 14:11:39 +02:00
Matthias Nagel
066a749363 feat: Implementierung der Eltern-Funktionalität zur Event-Teilnahmeverwaltung und Autocomplete-Verbesserungen 2025-10-01 13:58:48 +02:00
Matthias Nagel
4203a696d9 feat: Erweiterung der Spielerstellung um Elternsuche mit Autocomplete 2025-10-01 13:36:58 +02:00
Matthias Nagel
956d7a45e9 feat: Visuelle Unterscheidung der Termintypen auf dem Dashboard 2025-10-01 11:57:22 +02:00
Matthias Nagel
74ff99fe52 feat: Lokalisierung des Datumsformats auf dem Dashboard 2025-10-01 11:53:56 +02:00
Matthias Nagel
8c388b6ef3 feat: Verschiebung des 'Spieler erstellen'-Links in die Navbar und Behebung des Datumsformatfehlers 2025-10-01 11:35:50 +02:00
Matthias Nagel
1d61821f9f feat: Implementierung von Phase 6 (Frontend und finale Anpassungen) 2025-10-01 09:33:29 +02:00
Matthias Nagel
51bf727885 feat: Implementierung von Phase 5 (Fortgeschrittene Funktionen und Backend) und Fehlerbehebungen 2025-10-01 09:24:59 +02:00
Matthias Nagel
ea8439e616 feat: Implementierung von Phase 4 (Terminverwaltung und Google Maps API) und Korrektur der Dashboard-Logik 2025-10-01 08:32:56 +02:00
Matthias Nagel
05da0c94ac feat: Implementierung von Phase 3 und Profilbearbeitung 2025-10-01 08:19:05 +02:00
Matthias Nagel
e119b5c914 feat: Implementierung von Phase 2 (Benutzer- und Rollenmodell) und Anpassung des Geburtsdatumsformats 2025-09-30 20:05:30 +02:00
Matthias Nagel
bf27894513 feat: Initiales Projekt-Setup gemäß Phase 1 2025-09-30 19:55:22 +02:00