﻿{"id":267,"date":"2025-09-07T15:48:17","date_gmt":"2025-09-07T15:48:17","guid":{"rendered":"https:\/\/meinlaufplan.de\/?page_id=267"},"modified":"2025-10-04T15:52:38","modified_gmt":"2025-10-04T15:52:38","slug":"anleitung","status":"publish","type":"page","link":"https:\/\/meinlaufplan.de\/?page_id=267","title":{"rendered":"Anleitung"},"content":{"rendered":"        <div class=\"tp-wrap tp-anmeldung-grid\">\n            <aside class=\"tp-anmeldung-nav\" aria-label=\"Inhaltsverzeichnis\">\n                <div class=\"tp-nav-card\">\n                    <div class=\"tp-nav-head\">\n                        <strong>Inhalt<\/strong>\n                        <input type=\"search\" id=\"tpNavFilter\" placeholder=\"Suchen...\" aria-label=\"Navigation filtern\" \/>\n                    <\/div>\n                    <nav id=\"tpNavList\">\n                        <!-- Items injected via JS -->\n                    <\/nav>\n                <\/div>\n            <\/aside>\n            <main class=\"tp-anmeldung-content\">\n<section id=\"allgemein\"><h1>Allgemein<\/h1><\/section>\n\n<section id=\"login--registrieren--logout\"><h2>Login \/ Registrieren \/ Logout<\/h2>\n    <p>Dieses Formular erm\u00f6glicht es Benutzern, sich auf Meinlaufplan.de mit einem Alias oder einer E-Mail-Adresse und einem Passwort einzuloggen oder ein neues Konto zu erstellen.<\/p>\n    <p>Nach erfolgreichem Login werden Benutzer auf die Startseite weitergeleitet.<\/p>\n    <p>Eingeloggte Benutzer sehen eine \u201eAngemeldet als\u201c-Ansicht mit der Option zum Abmelden.<\/p>\n<h3>Login<\/h3>\n    <p>\u00d6ffne die im Men\u00fc die Seite Login<\/p>\n    <p>Gib im Login-Formular entweder deinen Alias oder deine E-Mail-Adresse sowie dein Passwort ein.<\/p>\n    <p>Klicke auf \u201eAnmelden\u201c.<\/p>\n    <p>Bei erfolgreichem Login wirst du auf die Startseite weitergeleitet. Eine Erfolgsmeldung wird angezeigt.<\/p>\n    <p>Falls die Zugangsdaten falsch sind, erscheint eine Fehlermeldung<\/p>\n    <p>Klicke im Login-Formular auf den Link \u201eNoch kein Konto? Jetzt registrieren\u201c.<\/p>\n<h3>F\u00fclle die Pflichtfelder aus<\/h3>\n    <p>E-Mail-Adresse: Muss eine g\u00fcltige E-Mail-Adresse sein.<\/p>\n    <p>Alias (optional): Ein eindeutiger Benutzername. Falls leer, wird nur die E-Mail verwendet.<\/p>\n    <p>Passwort: Mindestens 8 Zeichen lang.<\/p>\n    <p>Passwort wiederholen: Muss mit dem ersten Passwort \u00fcbereinstimmen.<\/p>\n    <p>Klicke auf \u201eRegistrieren\u201c.<\/p>\n    <p>Bei Erfolg wirst du automatisch eingeloggt und auf die Startseite weitergeleitet. Eine Erfolgsmeldung wird angezeigt.<\/p>\n    <p>Bei Fehlern (z. B. bereits vergebene E-Mail oder Alias, ung\u00fcltiges Passwort) erscheint eine Fehlermeldung.<\/p>\n<h3>Abmelden<\/h3>\n    <p>Wenn du eingeloggt bist, siehst du die \u201eAngemeldet als\u201c-Ansicht mit deinem Alias (falls vorhanden) oder deiner E-Mail-Adresse.<\/p>\n    <p>Klicke auf \u201eAbmelden\u201c, um die Sitzung zu beenden. Du wirst auf die aktuelle Seite zur\u00fcckgeleitet, und das Login-Formular wird wieder angezeigt.<\/p>\n<h3>Fehlermeldungen<\/h3>\n    <p>Fehlermeldungen wie \u201eUng\u00fcltige Zugangsdaten\u201c, \u201eE-Mail bereits registriert\u201c oder \u201ePassw\u00f6rter stimmen nicht \u00fcberein\u201c werden klar angezeigt.<\/p><\/section>\n\n<section id=\"meine-daten\"><h2>Meine Daten<\/h2><\/section>\n\n<h3>Pers\u00f6nliche Daten bearbeiten<\/h3>\n    <p>\u00d6ffne die Seite Meine Daten<\/p>\n    <p>Das Formular zeigt deine aktuellen Daten<\/p><ul>  \n    <\/ul>\n        <li>Alias (optional, muss eindeutig sein)<\/li>\n        <li>E-Mail (muss g\u00fcltig und eindeutig sein)<\/li>\n        <li>Vorname<\/li>\n        <li>Nachname<\/li>\n        <li>Geburtsdatum<\/li>\n        <li>Geschlecht (Auswahl: M\u00e4nnlich, Weiblich, Divers)<\/li>\n        <li>Verein (Dropdown mit bestehenden Vereinen oder Eingabe eines neuen Vereinsnamens)<\/li>\n        <li>Trainingsgruppe (Dropdown mit verf\u00fcgbaren Trainingsgruppen, die zu deinem Verein passen oder allgemein sind)<\/lip>\n    <p>Bearbeite die gew\u00fcnschten Felder und klicke auf \u201eSpeichern\u201c.<\/p>\n    <\/ul><\/section>\n<h3>Hinweise<\/h3>\n    <p>E-Mail und Alias m\u00fcssen eindeutig sein. Bei Dopplungen erscheint eine Fehlermeldung (z. B. \u201eDiese E-Mail wird bereits verwendet\u201c).<\/p>\n    <p>Wenn du einen neuen Verein eingibst, wird dieser in die Tabelle Verein eingef\u00fcgt.<\/p>\n    <p>Die Felder Rolle, Verein (au\u00dfer durch Auswahl\/Neueingabe) und Trainingsgruppe (au\u00dfer durch Dropdown) sind schreibgesch\u00fctzt.<\/p>\n    <p>Nach erfolgreichem Speichern erscheint die Meldung \u201eDaten gespeichert\u201c.<\/p><\/section>\n<h3>Passwort \u00e4ndern<\/h3>\n    <p>Im separaten Abschnitt \u201ePasswort \u00e4ndern\u201c (orange umrandet) kannst du dein Passwort aktualisieren:<\/p>\n    <p>Gib ein neues Passwort (mindestens 8 Zeichen) ein.<\/p>\n    <p>Wiederhole das Passwort im Feld Passwort wiederholen.<\/p>\n    <p>Klicke auf \u201ePasswort speichern\u201c.<\/p>\n    <p>Hinweise: Das Passwort wird nur gespeichert, wenn beide Eingaben \u00fcbereinstimmen und es mindestens 8 Zeichen lang ist.<\/p>\n    <p>Bei Erfolg erscheint \u201ePasswort erfolgreich gespeichert\u201c. Bei Fehlern (z. B. ung\u00fcltige Eingaben) erscheint eine Fehlermeldung.<\/p><\/section>\n\n<section id=\"sportler\"><h1>Sportler<\/h1><\/section>\n<section id=\"trainingsplan-ansehen\"><h2>Trainingsplan ansehen<\/h2>\n    <p>Dieses Formular erm\u00f6glicht eingeloggten Sportlern die Anzeige des eigenen w\u00f6chentlichen Trainingsplans.<\/p> \n    <p>Es zeigt eine Wochen\u00fcbersicht (Montag bis Sonntag) mit Trainingsdetails, Kilometern und festgelegten Veranstaltungen.<\/p>\n    <p>Sportler k\u00f6nnen zwischen Wochen navigieren und R\u00fcckmeldungen zu Trainingspl\u00e4nen abgeben.<\/p><\/section>\n<h3>Wochen\u00fcbersicht anzeigen<\/h3>\n    <p>\u00d6ffne die Seite \u201eTrainingsplan ansehen\u201c.<\/p>\n    <p>Obere Anzeige: Dein Name und deine Rolle (z. B. \u201eSportler\u201c, \u201eTrainer\u201c oder \u201eAdmin\u201c) werden angezeigt.<\/p><\/section>\n    <p>Die Tabelle zeigt die Woche von Montag bis Sonntag mit den folgenden Zeilen:<\/p>\n    <\/ul>\n        <li>Datum: z. B. \u201e01.01.2025\u201c.<\/li>\n        <li>Tag: Wochentag (Montag bis Sonntag).<\/li>\n        <li>Ort: Ort des Trainingsplans (falls vorhanden, sonst \u201e-\u201c).<\/li>\n        <li>Uhrzeit: Uhrzeit des Trainingsplans (falls vorhanden, sonst \u201e-\u201c).<\/li>\n        <li>Plan: Auflistung der Trainings mit Details (Name, Teile wie \u201e3\u00d7 400m \u2013 1:30 min \u2013 4:00\/km\u201c) oder \u201eFrei\u201c, wenn kein Training geplant ist.<\/li>\n        <li>Kilometer: Tagessumme der Kilometer (Training + Veranstaltungen) und Wochensumme (in der ersten Spalte).<\/li>\n        <li>Veranstaltungen\/Wettk\u00e4mpfe (falls verf\u00fcgbar) werden unterhalb der Trainingspl\u00e4ne angezeigt, inklusive Name, Ort, Art und Variante (z. B. \u201eMarathon \u00b7 42.195 m\u201c).<\/li>\n    <\/ul><\/section>\n<h3>Navigation zwischen Wochen<\/h3>\n    <p>Nutze die Buttons \u201eLetzte Woche\u201c (\u2190) und \u201eN\u00e4chste Woche\u201c (\u2192), um zwischen Wochen zu wechseln.<\/p>\n    <p>Die aktuelle Kalenderwoche und das Jahr (z. B. \u201eKW 36 \/ 2025\u201c) werden oben angezeigt.<\/p>\n    <p>Du kannst bis zu 260 Wochen in die Vergangenheit oder Zukunft navigieren (ca. 5 Jahre).<\/p><\/section>\n\n<section id=\"rckmeldung\"><h2>R\u00fcckmeldung<\/h2>\n    <p>F\u00fcr jeden Trainingsplan gibt es einen Button \u201eR\u00fcckmeldung\u201c (blau, wird gr\u00fcn, wenn eine R\u00fcckmeldung existiert).<\/p>\n    <p>Klicke auf \u201eR\u00fcckmeldung\u201c, um zur R\u00fcckmeldungsseite weitergeleitet zu werden, wo du Details zum Training eingeben kannst.<\/p>\n    <p>Die R\u00fcckmeldungsseite erm\u00f6glicht eingeloggten Sportlern die Erfassung und Bearbeitung von R\u00fcckmeldungen zu Trainingspl\u00e4nen.<\/p>\n    <p>Sportler k\u00f6nnen f\u00fcr jeden Satz eines Trainingsplans Details wie Dauer, Tempo und Kommentar eingeben.<\/p><\/section>\n<h3>R\u00fcckmeldung starten<\/h3>\n    <p>Navigiere zur Trainingsplan-Ansicht (Trainingsplan ansehen).<\/p>\n    <p>Klicke auf den Button \u201eR\u00fcckmeldung\u201c f\u00fcr ein Training (blau, gr\u00fcn wenn R\u00fcckmeldung existiert).<\/p>\n    <p>Du wirst zur R\u00fcckmeldungsseite weitergeleitet.<\/p><\/section>\n<h3>R\u00fcckmeldung eingeben<\/h3>\n    <p>Angezeigte Informationen<\/p>\n    <p>Oben siehst du Details zum Trainingsplan:<\/p>\n    <\/ul>\n        <li>Plan-ID<\/li>\n        <li>Datum<\/li>\n        <li>Planname<\/li>\n    <\/ul>\n        <p>Eine Tabelle listet alle Trainingsteile (z. B. \u201e3\u00d7 400m\u201c) mit:<\/p>\n    <\/ul>    \n        <li>Nummer: Reihenfolge des Teils<\/li>\n        <li>Teil (Soll): Beschreibung, Soll-Dauer und Soll-Tempo (z. B. \u201e3\u00d7 400m \u2013 1:30 min \u2013 4:00\/km\u201c)<\/li>\n        <li>R\u00fcckmeldung (Ist): Eingabefelder f\u00fcr jeden Satz: Satznummer (z. B. \u201e1\u201c, \u201e2\u201c, \u201e3\u201c)<\/li>\n        <li>Dauer: Eingabe im Format mm:ss:hh (Minuten:Sekunden:Hundertstel, z. B. \u201e4:32:05\u201c oder \u201e4:32\u201c)<\/li>\n        <li>Tempo: Eingabe im Format mm:ss (Minuten:Sekunden pro km, z. B. \u201e4:45\u201c).<\/li>\n        <li>Kommentar: Freitext f\u00fcr zus\u00e4tzliche Notizen<\/li>\n        <li>Eingaben: F\u00fclle die Felder f\u00fcr jeden Satz aus. Leere Felder (Dauer, Tempo, Kommentar) f\u00fchren zum L\u00f6schen des Satzes.<\/li>\n    <\/ul>\n    <p>Formatierung:<\/p>\n    <\/ul>\n        <li>Dauer: Muss mm:ss oder mm:ss:hh sein (z. B. \u201e4:32\u201c oder \u201e4:32:05\u201c).<\/li>\n        <li>Tempo: Muss mm:ss sein (z. B. \u201e4:45\u201c).<\/li>\n        <li>Formular erg\u00e4nzt automatisch fehlende Hundertstel bei Dauer (:00) und stellt zweistellige Sekunden sicher.<\/li>\n        <li>Tempo: Format mm:ss (Sekunden &lt; 60).<\/li>\n    <\/ul>\n    <p>Klicke auf \u201eR\u00fcckmeldung speichern\u201c.<\/p>\n    <p>Ergebnis: Bei Erfolg erscheint \u201eR\u00fcckmeldung gespeichert\u201c.<\/p>\n    <p>Bei Fehlern (z. B. ung\u00fcltiges Format, Zugriffsprobleme) erscheint eine Fehlermeldung wie \u201eSicherheitspr\u00fcfung fehlgeschlagen\u201c oder \u201eZugriff verweigert\u201c.<\/p>\n    <p>Klicke auf \u201eZur\u00fcck zur Plan-Ansicht\u201c, um zur Wochen\u00fcbersicht zur\u00fcckzukehren.<\/p><\/section>\n\n<section id=\"veranstaltungen-tabelle\"><h2>Veranstaltungen Tabelle<\/h2>\n    <p>Dieses Formular erm\u00f6glicht eingeloggten Sportlern die Anzeige und Verwaltung von Veranstaltungen (Wettk\u00e4mpfe), die von Trainern ihrer Trainingsgruppe erstellt wurden.<\/p>\n    <p>Sportler k\u00f6nnen Veranstaltungen ansehen, deren Status (\u201eeingetragen\u201c oder \u201eabgesagt\u201c) setzen und filtern.<\/p><\/section>\n<h3>Veranstaltungen anzeigen<\/h3>\n    <p>\u00d6ffne die Seite \u201eVeranstaltung Tabelle\u201c.<\/p><\/section>\n<h3>Filterleiste<\/h3>\n    <p>Oben gibt es Checkboxen f\u00fcr Veranstaltungsarten (\u201eBahn\u201c, \u201eStra\u00dfe\u201c, \u201eCross\u201c, \u201eHalle\u201c). Standardm\u00e4\u00dfig sind alle aktiv.<\/p>\n    <p>Deaktiviere Checkboxen, um Veranstaltungen nach Art zu filtern. Der Filter wird sofort clientseitig angewendet.<\/p><\/section>\n<h3>Veranstaltungstabelle<\/h3>\n    <p>Die Tabelle zeigt alle zuk\u00fcnftigen Veranstaltungen (ab heute), die von Trainern deiner Trainingsgruppe erstellt wurden,<\/p><\/section>\n    <p>mit den Spalten<\/p>\n    <\/ul>\n        <li>Name: Name der Veranstaltung (z. B. \u201eSilvesterlauf Saarbr\u00fccken 2025\u201c)<\/li>\n        <li>Ort: Veranstaltungsort<\/li>\n        <li>Varianten: Liste der verf\u00fcgbaren Varianten (z. B. \u201e800m\u201c, \u201e3000m\u201c, \u201eMittelstrecke\u201c ) mit Status (\u201eeingetragen\u201c, \u201eabgesagt\u201c, oder leer)<\/li>\n        <li>Datum: Datum der Veranstaltung<\/li>\n        <li>Art: Veranstaltungsart (z. B. \u201eCross\u201c, \u201eHalle\u201c, \u201eBahn\u201c, \u201eStra\u00dfe\u201c).<\/li>\n        <li>Homepage: Link zur Veranstaltungswebsite (falls vorhanden, gek\u00fcrzt auf 30 Zeichen).<\/li>\n        <li>Aktion: Button \u201eAnsehen\u201c (leitet zu einer Detailseite weiter, auf der diese Veranstaltung angezeigt wird).<\/li>\n    <\/ul><\/section>\n<h3>Tabelle sortieren<\/h3>\n    <p>Klicke auf Spalten\u00fcberschriften (z. B. \u201eDatum\u201c, \u201eName\u201c), um aufsteigend\/absteigend zu sortieren.<\/p>\n    <p>Standardm\u00e4\u00dfig ist die Sortierung nach Datum aufsteigend.<\/p>\n    <p>Varianten sind als Buttons dargestellt. Klicke auf eine Variante, um deren Status zu bearbeiten (\u00f6ffnet ein Modal-Fenster).<\/p><\/section>\n<h3>Status bearbeiten<\/h3>\n    <p>Klicke auf eine Variante in der \u201eVarianten\u201c-Spalte, um ein Modal-Fenster zu \u00f6ffnen.<\/p>\n    <p>Im Modal-Fenster<\/p>\n    <\/ul>\n        <li>Variante: Name der Variante.<\/li>\n        <li>Status: W\u00e4hle aus \u201eZusage \/ Festlegen\u201c (eingetragen) oder \u201eAblehnen \/ Absage\u201c (abgesagt). Der aktuelle Status (falls vorhanden) ist vorausgew\u00e4hlt.<\/li>\n        <li>Aktionen: Klicke auf \u201eSpeichern\u201c, um den Status zu setzen, oder \u201eAbbrechen\u201c, um das Modal zu schlie\u00dfen.<\/li>\n    <\/ul>\n    <p>Ergebnis:<\/p>\n    <p>Bei erfolgreichem Speichern erscheint die Meldung \u201eStatus gespeichert\u201c.<\/p>\n    <p>Der Status wird in der Tabelle aktualisiert (\u201eeingetragen\u201c = gr\u00fcn, \u201eabgesagt\u201c = rot, sonst orange).<\/p>\n    <p>Der Status beeinflusst die Sichtbarkeit im Trainingsplan (sichtbar wenn \u201eeingetragen\u201c oder unsichtbar f\u00fcr \u201eabgesagt\u201c).<\/p>\n    <p>Hinweise:<\/p>\n    <p>Nur die Stati \u201eeingetragen\u201c und \u201eabgesagt\u201c sind erlaubt.<\/p>\n    <p>Andere Stati (z. B. von Trainern gesetzte) bleiben erhalten, sind aber nicht ausw\u00e4hlbar.<\/p><\/section>\n\n<section id=\"trainer\"><h1>Trainer<\/h1><\/section>\n<section id=\"trainingsplan-neu\"><h2>Trainingsplan Neu<\/h2><\/section>\n    <p>Dieses Formular erm\u00f6glicht eingeloggten Trainern das Anlegen, Bearbeiten von Trainingspl\u00e4nen.<\/p>\n<h3>Felder<\/h3>\n    <\/ul>\n        <li>Name (Pflicht): Name des Plans (Text)<\/li>\n        <li>Beschreibung (optional): Freitext<\/li>\n        <li>Ort (optional): Textfeld (z. B. \u201eSportplatz A\u201c)<\/li>\n        <li>Uhrzeit (optional): Zeitfeld (Format HH:MM)<\/li>\n        <li>Gesamt-Trainingsdistanz (optional): Zahl (z. B. \u201e10.5\u201c km)<\/li>\n        <li>Teile des Plans (Tabelle):Anzahl: Anzahl der Wiederholungen (Standard: 1)<\/li>\n        <li>Bezeichnung: Name des Trainingsteils (z. B. \u201eEinlaufen\u201c)<\/li>\n        <li>Standard-Dauer: Dauer pro Satz (z. B. \u201e30min\u201c)<\/li>\n        <li>Standard-Tempo: Tempo pro Satz (z. B. \u201e5:00\/km\u201c)<\/li>\n        <li>Aktionen: Buttons \u201e Zeile\u201c (f\u00fcgt Zeile darunter ein) und \u201e Entfernen\u201c (entfernt Zeile, mindestens 1 bleibt)<\/li>\n        <li>Button \u201eWeitere Zeile hinzuf\u00fcgen\u201c am Tabellenende<\/li>\n        <li>Button \u201e Trainingsplan speichern\u201c<\/li>\n        <li>Neu: Standardm\u00e4\u00dfig 3 leere Zeilen. Leere Zeilen werden ignoriert<\/li>\n        <li>BTriningsplan speichern<\/li>\n    <\/ul><\/section>        \n<h2>Trainingsplan Tabelle<\/h2><\/section>\n    <p>Zweck: \u00dcbersicht der letzten Trainingspl\u00e4ne des Trainers (max. 50, sortiert nach ID absteigend)<p>\n    <p>Spalten:<p>\n        <\/ul>\n            <li>Name: Name des Plans<\/li>\n            <li>Beschreibung: Beschreibung (HTML-Tags entfernt)<\/li>\n            <li>Aktionen:\u201e Ansehen\u201c: Leitet Trainingsplan Ansicht<\/li>\n            <li>\u201e \u00c4ndern\u201c: Leitet zu Trainingsplan bearbeiten<\/li>\n            <li>\u201e Duplizieren\u201c: Leitet zu Trainingsplan Neu (Vorausgef\u00fcllt mit Daten des aktuellen Trainingsplans)<\/li>\n            <li>\u201e Zuweisen\u201c: Leitet zu Trainingsplan Zuweisen<\/li>\n            <li>\u201e L\u00f6schen\u201c: Best\u00e4tigung erforderlich (zugewiesene Trainingspl\u00e4ne beliben erhalten)<\/li>\n        <\/ul>\n    <p>Hinweise:Nur Pl\u00e4ne vom aktuell eingeloggten Trainer werden angezeigt<p>\n    <p>Wenn dem Trainer kein Trainingsplan zugewiesen ist wird: \u201eKeine Pl\u00e4ne gefunden.\u201c angezeigt<p><\/section>\n<h2>Trainingsplan Ansicht<\/h2><\/section>\n    <p>Zweck: Detaillierte Ansicht eines Plans inkl. Zuweisungen an die Sportler der Trainingsgruppe.<p>\n    <p>Inhalt:<p>\n        <\/ul>\n            <li>Header: Trainername, Plan-ID, Buttons \u201eZur\u00fcck\u201c (zu Tabelle) und \u201ePlan bearbeiten\u201c (falls erlaubt)<\/li>\n            <li>Plan-Details: Name, Beschreibung (HTML-Tags entfernt), Ort und Uhrzeit (editierbar via Formular mit Speichern-Button)<\/li>\n            <li>Teile (Standard): Tabelle mit:#: Laufende Nummer<\/li>\n            <li>Anzahl: Wiederholungen<\/li>\n            <li>Bezeichnung: Name des Trainingsteils<\/li>\n            <li>Standard-Dauer: Dauer pro Satz<\/li>\n            <li>Standard-Tempo: Tempo pro Satz.<\/li>\n        <\/ul>\n    <p>Varianten Feld mit Zuweisungen:<p>\n        <\/ul>\n            <li>Varianten (gruppiert): Gruppierte Zuweisungen nach Datum und identischem Werteprofil (Anzahl, Dauer, Tempo):Datum: Sortiert aufsteigend (\u201e\u2014\u201c f\u00fcr fehlende Daten)<\/li>\n            <li>Variante: Bezeichnet mit Buchstaben (A, B, ...), zeigt Anzahl Personen<\/li>\n            <li>Personen: Liste der Sportler (Name oder Alias), alphabetisch sortiert, mit L\u00f6sch-Button (\u201e\u201c) f\u00fcr Zuweisungen<\/li>\n            <li>Tabelle: Zeigt Anzahl, Bezeichnung, Dauer, Tempo (Standard oder \u00fcberschrieben)<\/li>\n        <\/ul><\/section>\n<h2>Trainingsplan Zuweisen<\/h2><\/section>\n    <p>Zweck: Zuweisung eines Plans an Sportler f\u00fcr bestimmte Daten mit optionalen Overrides<p>\n    <p>Abschnitte:<p>\n    <h3>Datum w\u00e4hlen<\/h3>\n        <\/ul>\n            <li>Datepicker zum Hinzuf\u00fcgen von Daten<\/li>\n            <li>Liste der hinzugef\u00fcgten Daten mit \u201eentfernen\u201c-Button.<\/li>\n            <li>Button \u201eListe anzeigen\/aktualisieren\u201c l\u00e4dt die Sportlerliste f\u00fcr die gew\u00e4hlten Daten<\/li>\n            <li>Hinweis: \u201eMarkierung \u201aanderer Plan\u2018 bedeutet: Sportler hat an diesem Tag bereits einen anderen Trainingsplan<\/li>\n        <\/ul>\n    <h3>Overrides (pro Trainingseinheit)<\/h3>\n        <\/ul>\n            <li>Anzahl: \u00dcberschreibt die original Anzahl von Wiederholungen<\/li>\n            <li>Dauer: \u00dcberschreibt die original Zeitwerte<\/li>\n            <li>Tempo: \u00dcberschreibt die original Tempoangaben<\/li>\n        <\/ul>\n    <h3>Sportler ausw\u00e4hlen (pro Datum)<\/h3>\n        <p>Tabelle mit:<p>\n            <\/ul>\n                <li>#: Laufende Nummer<\/li>\n                <li>Name: Vorname + Nachname<\/li>\n                <li>Alias: Alias (falls vorhanden)<\/li>\n                <li>E-Mail: E-Mail-Adresse<\/li>\n            <\/ul>  \n        <p>Status:<p>\n            <\/ul>\n                <li>\u201ediesen Plan zugewiesen\u201c (bereits zugewiesen, deaktiviert)<\/li>\n                <li>\u201eanderer Plan an diesem Tag\u201c (Konflikt mit anderem Plan)<\/li>\n                <li>\u201efrei\u201c (verf\u00fcgbar)<\/li>\n            <\/ul>\n        <p>:<p>\n            <\/ul>\n                <li>Checkbox \u201eAlle ausw\u00e4hlbaren markieren\u201c (markiert nicht deaktivierte Sportler)<\/li>\n                <li>Filterfeld f\u00fcr Name, Alias oder E-Mail (Live-Suche, case-insensitive)<\/li>\n            <\/ul>\n        <p>Aktionen:<p>\n            <\/ul>\n                <li>Zuweisen (Batch speichern)\u201c: Speichert Zuweisungen f\u00fcr alle markierten Sportler und Daten<\/li>\n                <li>\u201eZur\u00fcck zur Plan-Ansicht\u201c<\/li>\n            <\/ul><\/section>\n\n<section id=\"sportler-tabelle\"><h2>Sportler Tabelle<\/h2>\n    <p>Dieses Formular stellt eine \u00dcbersicht der Sportler in der Trainingsgruppe eines eingeloggten Trainers bereit, \n    einschlie\u00dflich ihrer aktuellen Altersklasse und zugewiesener Trainingspl\u00e4ne f\u00fcr ein bestimmtes Datum. \n    Es erm\u00f6glicht auch die Anzeige von Varianten (gruppierte Trainingsplan-Zuweisungen) und R\u00fcckblick-Details (IST-Werte) f\u00fcr jeden Sportler.<p>\n    <h3>Inhalt:<\/h3>\n    <\/ul>\n        <li>Titel: \u201eSportler der Trainingsgruppe\u201c<\/li>\n        <li>Tabelle:Spalten: Alias, Vorname, Nachname, Aktuelle Altersklasse, Plan<\/li>\n        <li>Alias, Vorname, Nachname: Direkt aus der Personen-Tabelle<\/li>\n        <li>Aktuelle Altersklasse: Berechnet basierend auf geburtsdatum und geschlecht<\/li>\n    <\/ul>\n    <h3>Plan Button<\/h3>\n    <p>\u201e Plan\u201c, f\u00fcrt zu Trainingsplan\u00fcbersicht des ausgew\u00e4hlten Sportlers<p>\n    <h3>Varianten (gruppiert)<\/h3>\n    <\/ul>\n        <li>Zweck: Zeigt Trainingsplan-Zuweisungen f\u00fcr ein bestimmtes Datum, gruppiert nach identischem Werteprofil (Anzahl, Dauer, Tempo)<\/li>\n        <li>Datumsauswahl:Standard: Heutiges Datum (z. B. 10.09.2025)<\/li>\n        <li>Navigation: Buttons \u201eVortag\u201c und \u201eN\u00e4chster Tag\u201c f\u00fcr das Datum \u00b11 Tag<\/li>\n    <\/ul>\n    <h3>Inhalt<\/h3>\n    <\/ul>\n        <li>Titel: \u201eVarianten (gruppiert) \u2014 [Datum]\u201c<\/li>\n        <li>Anzeige: Varianten sind alphabetisch benannt (A, B, \u2026) und nach Anzahl der Personen (absteigend) sowie erstem Namen (alphabetisch) sortiert<\/li>\n    <\/lu>\n    <h3>Pro Variante:<\/h3>\n    <\/ul>\n        <li>Header: \u201eVariante [Buchstabe] \u2014 [Anzahl] Person(en)\u201c<\/li>\n        <li>Personen: Liste der Sportler (Name oder Alias), alphabetisch sortiert<\/li>\n        <li>\u201egemacht\u201c-Button: Erscheint, wenn der SPortler eine R\u00fcckmeldung zu dieser Trainingseinheit eingetregen hat. \u00d6ffnet ein Modal mit R\u00fcckblick-Details<\/li>\n    <\/ul>\n    <h3>Tabelle:<\/h3>\n    <\/ul>\n        <li>Spalten: # (Nummer), Anzahl, Bezeichnung, Dauer, Tempo<\/li>\n        <li>Zeigt Soll-Werte (Standardwerte oder Overrides aus Personen_Trainingsplan_Teil)<\/li>\n    <\/ul>\n    <h3>R\u00fcckblick-Modal:<\/h3>\n    <p>Klick auf \u201egemacht\u201c-Button<p>\n    <\/ul>\n        <li>Titel: \u201eR\u00fcckblick \u2014 [Name] ([Datum])\u201c<\/li>\n        <li>Tabelle mit Spalten: # (Nummer), Teil (Bezeichnung), Satz (Index), Soll Dauer, Soll Tempo, Ist Dauer, Ist Tempo, Kommentar<\/li>\n        <li>Zeigt pro Trainingsteil und Satz die Soll-Werte (aus Plan oder Override) und IST-Werte (aus Personen_Trainingsplan_Teil_Satz)<\/li>\n        <li>Schlie\u00dfen via \u201e\u00d7\u201c-Button,Backdrop-Klick oder Escape-Taste<\/li>\n    <\/lu><\/section>\n\n<section id=\"veranstaltung-neu\"><h2>Veranstaltung neu<\/h2>\n    <p>Dieses Formular erm\u00f6glicht eingeloggten Trainern das Anlegen, Bearbeiten, Ansehen und L\u00f6schen von Veranstaltungen (Wettk\u00e4mpfen) inklusive Varianten und Altersklassen.<\/p>\n    <p>Nur der Ersteller einer Veranstaltung kann diese bearbeiten oder l\u00f6schen.<\/p><\/section>\n<h3>Veranstaltung neu anlegen<\/h3>\n    <p>\u00d6ffne die Seite \u201eVeranstaltung neu\u201c.<\/p><\/section>\n<h3>Veranstaltungsdaten<\/h3>\n    <\/ul>\n        <li>Name: Veranstaltungsname (erforderlich).<\/li>\n        <li>Datum: Datum (erforderlich).<\/li>\n        <li>Ort: Veranstaltungsort (optional).<\/li>\n        <li>Art: W\u00e4hle aus \u201eCross\u201c, \u201eStra\u00dfe\u201c, \u201eBahn\u201c, \u201eHalle\u201c (erforderlich).<\/li>\n        <li>Meldeschluss: Datum (optional).<\/li>\n        <li>Nachmeldung: W\u00e4hle aus \u201em\u00f6glich\u201c, \u201enicht m\u00f6glich\u201c, \u201eunbekannt\u201c (Standard: \u201eunbekannt\u201c).<\/li>\n        <li>Veranstalter Homepage: URL der Veranstaltungswebsite (optional, z. B. https:\/\/...).<\/li>\n        <li>Ges. km: ungef\u00e4hre Gesamtkilometer inklusive Aufw\u00e4rmen und auslaufen f\u00fcr die Wochen\u00fcbersicht (z. B. \u201e12.5\u201c, optional, 0\u20139999.99).<\/li>\n    <\/ul>\n    <p>Bemerkung: Freitext f\u00fcr zus\u00e4tzliche Notizen (optional).<\/p><\/section>\n<h3>Veranstaltungsvarianten (optional)<\/h3>\n    <p>F\u00fcge Varianten (z. B. \u201e800m\u201c, \u201eMittelstrecke\u201c) \u00fcber die Tabelle hinzu:<\/p>\n    <p>Bezeichnung*: Name der Variante (erforderlich).<\/p>\n    <\/ul>\n        <li>Distanz (m): Distanz in Metern (z. B. \u201e42195\u201c, optional, ganze Zahl).<\/li>\n        <li>Kategorie: W\u00e4hle aus \u201eSprint\u201c, \u201eMittelstrecke\u201c, \u201eLangstrecke\u201c, \u201eSonstiges\u201c (optional, Standard: \u201eSonstiges\u201c).<\/li>\n        <li>Mannschaftsart: W\u00e4hle aus \u201eEinzel\u201c, \u201eStaffel\u201c, \u201eMannschaft\u201c (Standard: \u201eEinzel\u201c).<\/li>\n        <li>Gr\u00f6\u00dfe: Anzahl der Teammitglieder (mindestens 2, erforderlich f\u00fcr \u201eStaffel\u201c oder \u201eMannschaft\u201c, deaktiviert bei \u201eEinzel\u201c).<\/li>\n        <li>Altersklassen: Komma-separierte Codes (z. B. \u201eM30, W20, U16\u201c) oder \u00fcber den Button \u201eAKs bearbeiten\u2026\u201c hinzuf\u00fcgen (max. 20 Zeichen pro Code).<\/li>\n        <li>Bemerkung: Freitext f\u00fcr die Variante (optional).<\/li>\n    <\/ul>\n    <p>Aktion: Button \u201eEntfernen\u201c zum L\u00f6schen der Zeile.<\/p>\n    <p>Klicke auf \u201e+ Variante hinzuf\u00fcgen\u201c, um weitere Varianten hinzuzuf\u00fcgen.<\/p><\/section>\n<h3>Altersklassen-Editor (Modal-Fenster)<\/h3>\n    <p>Klicke auf \u201eAKs bearbeiten\u2026\u201c, um ein Modal-Fenster zu \u00f6ffnen.<\/p>\n    <p>F\u00fcge Altersklassen-Codes ein (z. B. \u201eM30\u201c, \u201eW20\u201c).<\/p>\n    <p>Klicke auf \u201e+ Feld hinzuf\u00fcgen\u201c f\u00fcr weitere Codes oder \u201eEntfernen\u201c, um Codes zu l\u00f6schen.<\/p>\n    <p>Klicke auf \u201e\u00dcbernehmen\u201c, um die Codes in das Hauptformular zu \u00fcbertragen, oder \u201eAbbrechen\u201c\/\u201eSchlie\u00dfen\u201c, um das Modal zu schlie\u00dfen.<\/p><\/section>\n<h3>Speichern<\/h3>\n    <p>Klicke auf \u201eSpeichern\u201c. Bei Erfolg wirst du zur \u00dcbersicht der gerade gespeicherten Veranstaltung weitergeleitet.<\/p>\n    <p>Bei Fehlern (z. B. fehlender Name, ung\u00fcltiges Datum) erscheinen Fehlermeldungen.<\/p>\n    <p>Warnungen erscheinen, wenn Varianten \u00fcbersprungen wurden (z. B. ung\u00fcltige Eingaben).<\/p>\n    <p>Aus der Veranstaltungstabelle kann dieses Formular auch zum Bearbeiten der Veranstaltung genutzt werden.<\/p>\n    <p>Das Formular ist dann mit den bestehenden Daten vorausgef\u00fcllt (Veranstaltung und Varianten).<\/p>\n    <p>Bearbeite die Felder wie im \u201eVeranstaltung Neu\u201c Modus. Varianten k\u00f6nnen hinzugef\u00fcgt, bearbeitet oder entfernt werden.<\/p>\n    <p>Klicke auf \u201e\u00c4nderungen speichern\u201c.<\/p><\/section>\n\n<section id=\"veranstaltung-tabelle\"><h2>Veranstaltung Tabelle<\/h2>\n    <p>Dieses Formular erm\u00f6glicht eingeloggten Trainern die Anzeige ihrer Veranstaltungen (Wettk\u00e4mpfe) in einer \u00fcbersichtlichen Tabelle mit Aktionen zum Ansehen, Bearbeiten, Zuweisen und L\u00f6schen.<\/p>\n    <p>Nur der Ersteller einer Veranstaltung kann diese bearbeiten oder l\u00f6schen.<\/p><\/section>\n<h3>\u00dcbersicht anzeigen<\/h3>\n    <p>\u00d6ffne die Seite \u201eVeranstaltung Tabelle\u201c.<\/p>\n    <p>Es wird eine Tabelle mit allen Veranstaltungen angezeigt, die vom eingeloggten Trainer erstellt wurden und deren Datum in der Zukunft liegt (ab heute).<\/p><\/section>\n<h3>Spalten der Tabelle<\/h3><\/section>\n    <\/ul>\n        <li>Name: Name der Veranstaltung<\/li>\n        <li>Ort: Veranstaltungsort<\/li>\n        <li>Varianten: Komma-separierte Liste der Variantenbezeichnungen (z. B. \u201eMarathon, Halbmarathon\u201c)<\/li>\n        <li>Datum: Datum der Veranstaltung<\/li>\n        <li>Art: Art der Veranstaltung (\u201eBahn\u201c, \u201eStra\u00dfe\u201c, \u201eCross\u201c, \u201eHalle\u201c)<\/li>\n        <li>Homepage: Verlinkte URL der Veranstalter-Website (gek\u00fcrzt auf 30 Zeichen mit \u201e\u2026\u201c, falls l\u00e4nger)<\/li>\n        <li>Aktionen: Buttons f\u00fcr \u201eAnsehen\u201c, \u201e\u00c4ndern\u201c, \u201eZuweisen\u201c und \u201eL\u00f6schen\u201c<\/li>\n    <\/ul><\/section>\n<h3>Filterleiste<\/h3>\n    <p>Oben in der Tabelle gibt es Checkboxen f\u00fcr die Veranstaltungsarten (\u201eBahn\u201c, \u201eStra\u00dfe\u201c, \u201eCross\u201c, \u201eHalle\u201c), die standardm\u00e4\u00dfig alle aktiviert sind.<\/p><p>Durch Aktivieren\/Deaktivieren der Checkboxen kannst du die Tabelle nach Veranstaltungsarten filtern.<\/p><\/section>\n<h3>Sortierung<\/h3>\n    <p>Die Tabelle ist standardm\u00e4\u00dfig nach dem Datum aufsteigend sortiert.<\/p>\n    <p>Klicke auf eine Spalten\u00fcberschrift (z. B. \u201eName\u201c, \u201eDatum\u201c), um die Tabelle nach dieser Spalte zu sortieren (aufsteigend\/absteigend).<\/p>\n    <p>Button \u201e+ Veranstaltung anlegen\u201c: Leitet zu \u201eVeranstaltung neu\u201c<\/p>\n    <\/ul>\n        <li>Ansehen: Klickt auf \u201eAnsehen\u201c, um die Veranstaltung im Detail zu sehen.<\/li>\n        <li>\u00c4ndern: Klickt auf \u201e\u00c4ndern\u201c, um die Veranstaltung zu bearbeiten.<\/li>\n        <li>Zuweisen: Klickt auf \u201eZuweisen\u201c, um Teilnehmer oder Teams der Veranstaltung zuzuweisen.<\/li>\n        <li>L\u00f6schen: Klickt auf \u201eL\u00f6schen\u201c, um die Veranstaltung zu l\u00f6schen. Eine Best\u00e4tigung (\u201eVeranstaltung wirklich l\u00f6schen?\u201c) wird angezeigt. Nach Best\u00e4tigung werden die Veranstaltung und alle zugeh\u00f6rigen Daten gel\u00f6scht.<\/li>\n    <\/ul><\/section>\n\n<section id=\"veranstaltung-zuweisen\"><h2>Veranstaltung zuweisen<\/h2><p>Dieses Formular erm\u00f6glicht eingeloggten Trainern das Zuweisen von Sportlern zu Veranstaltungsvarianten sowie das Anzeigen und L\u00f6schen bestehender Zuweisungen.<\/p><\/section>\n<h3>Seite \u00f6ffnen<\/h3>\n    <p>\u00d6ffne die Seite \u00fcber Veranstaltung Tabelle. Eingeloggt als Trainer, kann \u00fcber den Button \u201eZuweisen\u201c die jeweilige Veranstaltung einem oder mehreren Sportlern zugewiesen werden.<\/p><\/section>\n<h3>Veranstaltungsdetails anzeigen<\/h3><\/section>\n    <p>Die Veranstaltungsdetails werden in einer Tabelle angezeigt<\/p>\n    <\/ul>    \n        <li>Name: Name der Veranstaltung (z. B. \u201eStadtmarathon 2025\u201c).<\/li>\n        <li>Datum: Datum<\/li>\n        <li>Ort: Veranstaltungsort (z. B. \u201eBerlin\u201c).<\/li>\n        <li>Art: Veranstaltungsart (z. B. \u201eCross\u201c).<\/li>\n        <li>Meldeschluss: Meldeschluss-Datum oder \u201e\u2014\u201c (falls nicht gesetzt).<\/li>\n        <li>Nachmeldung: \u201em\u00f6glich\u201c, \u201enicht m\u00f6glich\u201c oder \u201eunbekannt\u201c.<\/li>\n        <li>Homepage: Verlinkte URL der Veranstalter-Website.<\/li>\n        <li>Bemerkung: Zus\u00e4tzliche Notizen (falls vorhanden).<\/li>\n    <\/ul><\/section>\n<h3>Varianten anzeigen<\/h3>\n    <p>Eine Tabelle zeigt alle Varianten der Veranstaltung (z. B. \u201eMarathon\u201c, \u201eHalbmarathon\u201c):<\/p>\n    <\/ul>    \n        <li>Checkbox: Erm\u00f6glicht die Auswahl der Variante f\u00fcr Zuweisungen (nur f\u00fcr Trainer aktiv).<\/li>\n        <li>Variante: Bezeichnung der Variante.<\/li>\n        <li>Distanz (m): Distanz in Metern (z. B. \u201e42195\u201c).<\/li>\n        <li>Zugewiesen: Liste der zugewiesenen Sportler mit Namen und Status (z. B. \u201evorgeschlagen\u201c, \u201eeingetragen\u201c, \u201eabgesagt\u201c).<\/li>\n        <li>Status wird in farbigen \u201ePills\u201c angezeigt<\/li>\n        <\/ul>\n            <li>vorgeschlagen: Orange.<\/li>\n            <li>eingetragen: Gr\u00fcn<\/li>\n            <li>abgesagt: Rot<\/li>\n        <\/ul>    \n    <\/ul>\n    <p>F\u00fcr Trainer: Ein \u201eX\u201c-Button neben jedem Sportler erm\u00f6glicht das L\u00f6schen der Zuweisung (mit Best\u00e4tigung: \u201eZuweisung l\u00f6schen?\u201c).<\/p><p>Wenn keine Varianten existieren, erscheint: \u201eKeine Varianten angelegt.\u201c<\/p><\/section>\n<h3>Sportler ausw\u00e4hlen<\/h3>\n    <p>Eine Liste zeigt alle Sportler in der Trainingsgruppe des Veranstaltungserstellers (basierend auf Trainingsgruppe des Erstellers)<\/p><p>Jeder Sportler hat eine Checkbox (nur f\u00fcr Trainer aktiv) und wird als \u201eNachname, Vorname\u201c angezeigt.<\/p><p>Wenn keine Trainingsgruppe gefunden wird, erscheint: \u201eKeine Trainingsgruppe f\u00fcr den Ersteller gefunden.\u201c<\/p>\n    <p>Wenn keine Sportler in der Trainingsgruppe sind, erscheint: \u201eKeine Sportler in dieser Trainingsgruppe gefunden.\u201c<\/p><\/section>\n<h3>Zuweisungen vornehmen<\/h3>\n    <p>Vorschlag speichern<\/p>\n        <\/ul>\n        <li>W\u00e4hle eine oder mehrere Varianten (Checkboxen in der Varianten-Tabelle).<\/li>\n        <li>W\u00e4hle einen oder mehrere Sportler (Checkboxen in der Sportlerliste).<\/li>\n        <\/ul>\n    <p>Klicke auf den Button \u201eVorschlag\u201c.<\/p>\n    <p>Wenn keine Varianten oder Sportler ausgew\u00e4hlt sind, erscheint: \u201eKeine Auswahl. Mindestens eine Variante und einen Sportler markieren.\u201c<\/p>\n<h3>Zuweisung l\u00f6schen<\/h3>\n    <p>Klicke auf den \u201eX\u201c-Button neben einem zugewiesenen Sportler in der Varianten-Tabelle.<\/p>\n    <p>Best\u00e4tige mit \u201eZuweisung l\u00f6schen?\u201c.<\/p>\n    <p>Der Eintrag wird entfernt.<\/p>\n    <p>Ergebnis: \u201eZuweisung entfernt.\u201c<\/p>\n    <p>Bei ung\u00fcltigen Parametern erscheint: \u201eL\u00f6schen fehlgeschlagen. Ung\u00fcltige Parameter.\u201c<\/p><\/section>\n\n<section id=\"sportler-tabelle\"><h2>Sportler Tabelle<\/h2>\n    <p>Dieses Formular erm\u00f6glicht eingeloggten Trainern, die  Anzeige einer \u00dcbersicht der Sportler in ihrer Trainingsgruppe sowie der zugewiesenen Trainingspl\u00e4ne f\u00fcr ein bestimmtes Datum.<\/p>\n    <p>Die Sportler Tabelle zeigt zwei Abschnitte<\/p>\n    <\/ul>    \n        <li>eine Tabelle mit Sportlerdaten inklusive aktueller Altersklasse<\/li>\n        <li>eine gruppierte Ansicht von Trainingspl\u00e4nen (Varianten) f\u00fcr den gew\u00e4hlten Tag.<\/li>\n    <\/ul><\/section>\n<h3>\u00dcbersicht anzeigen<\/h3>\n    <p>\u00d6ffne die Seite \u201eSportler Tabelle\u201c.<\/p>\n    <p>Das Formular zeigt zwei Abschnitte<\/p>\n    <\/ul>\n        <li>Sportler-Tabelle: \u00dcbersicht der Sportler in der Trainingsgruppe.<\/li>\n        <li>Varianten (gruppiert): Gruppierte Trainingspl\u00e4ne f\u00fcr den gew\u00e4hlten Tag.<\/li>\n    <\/ul><\/section>\n<h3>Sportler-Tabelle<\/h3>\n    <p>Zeigt alle Sportler der Trainingsgruppe des Trainers<\/p>\n    <p>Spalten<\/p>\n    <\/ul>\n        <li>Alias: Alias des Sportlers (falls vorhanden).<\/li>\n        <li>Vorname: Vorname des Sportlers.<\/li>\n        <li>Nachname: Nachname des Sportlers.<\/li>\n        <li>Aktuelle Altersklasse: Berechnet nach dem Geburtsdatum. Fehler: \u201eGeburtsdatum fehlt\u201c oder \u201eGeburtstag nicht eingetragen\u201c (bei ung\u00fcltigem Datum).<\/li>\n        <li>Plan: Button \u201e Plan\u201c, F\u00fchrt zum aktuellen Trainingsplan des Sportlers.<\/li>\n    <\/ul>\n    <p>Wenn keine Sportler gefunden werden, erscheint: \u201eKeine Sportler gefunden.\u201c<\/p>\n    <p>Wenn der Trainer keine Trainingsgruppe hat, erscheint: \u201eKeine Trainingsgruppe beim Trainer hinterlegt.\u201c<\/p><\/section>\n<h3>Varianten (gruppiert)<\/h3>\n    <p>Zeigt Trainingspl\u00e4ne f\u00fcr den gew\u00e4hlten Tag, gruppiert nach identischen Werteprofilen (Bezeichnung, Anzahl, Dauer, Tempo).<\/p><\/section>\n    <p>Datumsnavigation<\/p>\n    <\/ul>\n        <li>Vortag: Button \u201e\u2190 Vortag\u201c leitet zum vorherigen Tag.<\/li>\n        <li>N\u00e4chster Tag: Button \u201eN\u00e4chster Tag \u2192\u201c leitet zumn n\u00e4chsten Tag.<\/li>\n        <li>Aktuelles Datum wird formatiert angezeigt (z. B. \u201eMo, 08.09.2025\u201c).<\/li>\n    <\/ul><\/section>\n<h3>Gruppen<\/h3>\n    <\/ul>\n        <li>Jede Gruppe repr\u00e4sentiert Sportler mit identischen Trainingspl\u00e4nen (\u201eVariante\u201c) f\u00fcr den Tag.<\/li>\n        <li>Sortiert nach Anzahl der Personen (absteigend) und dann alphabetisch nach dem ersten Namen.<\/li>\n        <li>Jede Gruppe hat eine Bezeichnung (z. B. \u201eVariante A\u201c) und zeigt: Anzahl Personen: Z. B. \u201e3 Person(en)\u201c.<\/li>\n        <li>Personen: Liste der Sportler (Name oder Alias), alphabetisch sortiert.<\/li>\n        <li>\u201egemacht\u201c-Button: Erscheint f\u00fcr Sportler, die eine R\u00fcckmeldung eingetragen haben. \u00d6ffnet eine \u00dcbersicht mit Details.<\/li>\n        <li>Tabelle: #: Laufende Nummer.<\/li>\n        <li>Anzahl: Anzahl der S\u00e4tze (Standard oder \u00fcberschrieben).<\/li>\n        <li>Bezeichnung: Name des Trainingsteils (z. B. \u201eLauf\u201c).<\/li>\n        <li>Dauer: Soll-Dauer (Standard oder \u00fcberschrieben).<\/li>\n        <li>Tempo: Soll-Tempo (Standard oder \u00fcberschrieben).<\/li>\n    <\/ul>\n    <p>Wenn keine Varianten existieren, erscheint: \u201eKeine Varianten vorhanden.\u201c<\/p><\/section>\n<h3>\u00dcbersicht (R\u00fcckblick)<\/h3>\n    <p>Klicke auf den \u201egemacht\u201c-Button neben einem Sportler, um eine \u00dcbersicht mit dem Trainingsr\u00fcckblick zu \u00f6ffnen.<\/p>\n    <\/ul>\n        <li>Inhalt: Titel: \u201eR\u00fcckblick \u2014 [Name] ([Datum])\u201c.<\/li>\n        <li>Tabelle: #: Laufende Nummer.<\/li>\n        <li>Teil: Bezeichnung des Trainingsteils.<\/li>\n        <li>Satz: Satz-Index (z. B. 1, 2).<\/li>\n        <li>Soll Dauer: Dauer aus dem Trainingsplan.<\/li>\n        <li>Soll Tempo: Tempo aus dem Trainingsplan.<\/li>\n        <li>Ist Dauer: Tats\u00e4chliche Dauer (aus Personen_Trainingsplan_Teil_Satz).<\/li>\n        <li>Ist Tempo: Tats\u00e4chliches Tempo.<\/li>\n        <li>Kommentar: Kommentar des Sportlers.<\/li>\n    <\/ul>\n    <p>Schlie\u00dfen: Klicke auf \u201e\u00d7\u201c oder die Esc-Taste, um das Modal zu schlie\u00dfen.<\/p><\/section>\n            <\/main>\n        <\/div>\n        \n        <script>\n            (function () {\n            const nav = document.getElementById('tpNavList');\n            const filter = document.getElementById('tpNavFilter');\n            const content = document.querySelector('.tp-anmeldung-content');\n\n            function slugify(s){\n                return (s||'')\n                .normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'')\n                .toLowerCase().replace(\/[^a-z0-9]+\/g,'-')\n                .replace(\/^-+|-+$\/g,'').substring(0,80) || 'abschnitt';\n            }\n            function ensureId(el, base){\n                let id = base, i = 2;\n                while (document.getElementById(id)) id = base + '-' + (i++);\n                el.id = id; return id;\n            }\n\n            function collect(){\n                const hs = Array.from(content.querySelectorAll('h1, h2'));\n                const items = [];\n                hs.forEach(h => {\n                const level = h.tagName === 'H1' ? 1 : 2;\n                const label = h.textContent.trim();\n                const sec = h.closest('section');\n                let id = (sec && sec.id) || h.id;\n                if (!id) id = ensureId(sec || h, slugify(label));\n                items.push({ id, label, level });\n                });\n                return items;\n            }\n\n            const all = collect();\n\n            function render(list){\n                nav.innerHTML = '';\n                list.forEach(it => {\n                const a = document.createElement('a');\n                a.href = '#' + it.id;\n                a.textContent = it.label;\n                a.dataset.level = String(it.level);\n                nav.appendChild(a);\n                });\n            }\n            render(all);\n\n            function norm(s){ return (s||'').toLowerCase(); }\n            filter?.addEventListener('input', function(){\n                const q = norm(this.value);\n                render(all.filter(it => norm(it.label).includes(q)));\n                onScroll();\n            });\n\n            function onScroll(){\n                const fromTop = window.scrollY + 100;\n                let current = null;\n                for (const it of all) {\n                const el = document.getElementById(it.id);\n                if (el && el.offsetTop <= fromTop) current = it.id;\n                }\n                Array.from(nav.querySelectorAll('a'))\n                .forEach(a => a.classList.toggle('active', a.getAttribute('href') === '#' + current));\n            }\n            document.addEventListener('scroll', onScroll, { passive: true });\n            onScroll();\n            })();\n            <\/script>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-267","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=\/wp\/v2\/pages\/267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=267"}],"version-history":[{"count":2,"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=\/wp\/v2\/pages\/267\/revisions"}],"predecessor-version":[{"id":277,"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=\/wp\/v2\/pages\/267\/revisions\/277"}],"wp:attachment":[{"href":"https:\/\/meinlaufplan.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}