Kursplan
AktivKursplan aus der Zentrale (Kurspool, Magicline oder aidoo), sechs Darstellungen je Kunde, Kategorie-Optik, Verordnungs-Kennzeichen, PDF und Änderungsaufträge aus Tickets
- Bereich
- Zentrale
- Start
- 01.08.2026
- Zuletzt
- 10.10.2026
- Am Zug
- René
Nächster Schritt, René
Hub v0.375.0 (Standort-Band) per rollout.sh ausrollen, danach je Kunde die Kursplan-Darstellung wählen und preprod nach main freigeben
Worum es geht
Der Kursplan eines Studios wird in der Zentrale gepflegt und von den Kundenwebsites, vom PDF und vom Portal gezogen. Er ersetzt das Freeda-Widget. Die Termine kommen aus dem Kurspool der Zentrale, aus Magicline oder aus aidoo, Optik und Texte aus dem Kurspool. Jeder Kunde bekommt Farben, Icons und eine von sechs Darstellungen.
Stand
- Kurspool (globaler Master mit Kategorien) und Wochenplan-Editor im Portal seit 01.08.2026 (Hub v0.62.0), Standorte als Datendimension (v0.64.0), Zeitschaltung und Ausfälle je Datum (v0.65.0).
- Kategorie-Optik je Kunde seit 05.08. (v0.113.x): Farbe, Icon, Name, eigene Kategorien, automatische Lesbarkeit (WCAG), Silhouetten-Icons.
- Öffentlicher Feed
GET /portal/kursplan.json?k=&s=und/portal/kursplan-bild/:id; Prebuild-Fallback und Kursübersicht (Variante F) bei Balance Kassel. - PDF-Kursplan je Kunde (v0.118.0): Firmenfarbe, Motiv, Kursnamen nie abgekürzt (v0.188.5), Niveau E/M/F (26.08., Commit 39c6e5a).
- Termine aus Magicline seit 08.08. (v0.146.0), aus aidoo seit 10.09. (v0.273.0, Pilot AktiVita). Schalter
mappings.kursplan.quelle= kurspool, magicline oder aidoo. - Sechs Darstellungen je Kunde seit 06.09. (v0.255.0): kategorien (Standard), tagesprofil, agenda, magazin, studio, kursuebersicht. Gemeinsamer Renderer
sim-kursplan-render.ts. - Verordnungs-Kennzeichen (Stethoskop-Badge, „Rp“ im PDF) und Farbwelten (standard, abstufungen, nachbarn, neutral) seit 30.08. (v0.246.4, v0.246.5).
- Kursplan-Änderungen aus Tickets laufen als Auftragstyp
kursplan.aenderung(v0.338.0, seit 22.09.), KI liest die Wünsche, Freigabe übernimmt in den Kursplan. - Bauen statt mergen: Knöpfe „Vorschau bauen“ und „Live bauen“ in der Kursplan-Karte der Kundenakte; bei Live-Ausspielung (Balance Kassel) keine Aktion nötig.
- Termin-Hinweise stehen in jeder Ansicht direkt unter dem Kursnamen (v0.121.2).
Offen
- René Hub v0.375.0 (8fb8a90, Standort-Wahl als farbiges Band im Kursplan-Editor und bei den Öffnungszeiten) ist nicht ausgerollt, der Klassifikator blockt
rollout.sh; danach Tschann, Life X und MyTime ansehen. - René je Kunde die Darstellung wählen (Kundenakte › Website › Kursplan › Darstellung) und preprod nach main freigeben.
- René Go für die globale Änderung der Master-Farben (Reha Sport hat dieselbe Farbe wie Gesundheit und Prävention, Rücken und Yoga liegen zu nah), sichtbar auf allen Plänen ohne eigene Palette, etwa MyTime.
- René Design-Freigabe der Preview-Varianten und Rollout der Kursübersicht (Variante F) in die Templates (Stand 06.08., prüfen, ob durch die Darstellungsvarianten erledigt).
- ich Balance Kassel zum 19.10. Zumba Sa 11:00 (#63) und Bodystyling Do 16:30 (#75) je Kursraum 1 wieder eintragen, Skript
/root/scripts/balance-kursplan-2026-10-19.sh, Zeitgeber nicht eingerichtet, Wiedervorlage #30 am 19.10. um 07:00. - ich erstes echtes neues Kursplan-Ticket beobachten (Bildqualität, Dauer, Trennung der Wünsche); Antwortentwurf an den Kunden nach der Übernahme ist nicht gebaut.
- René Go für den Bauvorschlag zu Ticket #772 (Kursplan-Weiche läuft in die Sackgasse bei Aufgussplan-PDF, fehlender Anhang, Nachzügler-Mail, Terminwunsch als Live-Datum).
- ich PDF-Kursplan zieht bei Magicline und aidoo weiter den Kurspool-Plan (Stand 08.08., prüfen, ob erledigt); Ausnahmen und Absagen nur über das Live-Overlay.
- ich
MASTER_STANDARD-Seed inkurseCore.tssteht noch auf den alten Farbwerten (Stand 07.08., prüfen). - ich Rollout-Reste der Darstellungsvarianten: fit501 und inform nur lokal committet (https-Remote ohne Token), injoy-wunstorf, balance-kassel (eigene Variante), golf-template, ploen, energy, aktiv-gym ohne Komponente (Stand 06.09., prüfen).
Entscheidungen und Regeln
- 2026-08-05: Kategorien eines Kunden sind entweder Übersteuerung einer Master-Kategorie oder eigene Kategorie. Pflege nur in der Zentrale, nicht im Portal.
- 2026-08-05: Kategorie-Bilder werden als Silhouette (CSS-Maske in der Schriftfarbe) gezeichnet, in Zentrale und Website.
- 2026-08-06: Der Termin-Hinweis (zum Beispiel „INTERVALL“) steht als normaler Text direkt unter dem Kursnamen, in jeder Ansicht, auch im PDF.
- 2026-08-06: Freeda-Widget auf Balance Kassel entfernt, die Kategorien-Ansicht ist dort der einzige Plan.
- 2026-08-08: Magicline liefert die Termine, Optik und Texte kommen weiter aus dem Kurspool (Hybrid). Der Vertrag von
kursplan.jsonbleibt unverändert. - 2026-08-30: Farbwelt „Nachbarn“ (MyTime, Life X); Master „Reha Sport“ gilt als Kurs nur mit Verordnung.
- 2026-09-06: Alle sechs Darstellungen stehen je Kunde zur Wahl, festgelegt in der Zentrale, kein Umschalter auf der Website. Standard ist kategorien.
- 2026-09-22: Kursplan-Wünsche aus Tickets laufen als Auftrag, nicht mehr von Hand in der Sitzung.
- Balance Kassel ist eine individuelle Seite ohne Template-Basis, Änderungen dort nur additiv (Renés Warnung 05.08.).
- Komponenten-Patches vor dem Push flottenweit lokal bauen oder wenigstens ein Repo per CI abwarten (Lehre aus dem Build-Abbruch kachelStil am 30.08.).
- Im Hub-Container gibt es keine Systemschriften, SVG-Text über sharp wird zu Kästchen; Etiketten laufen über Resvg mit
assets/fonts/Manrope-Bold.ttf.
Verlauf
- Hub v0.375.0 (8fb8a90): Standort-Wahl als farbiges Band im Kursplan-Editor und bei den Öffnungszeiten, Erklärvideos in der Hilfe-Leiste. Nicht ausgerollt.
- Erklärvideo „Kursplan“ (69 s) in der Portal-Serie veröffentlicht.
- Balance Kassel: Bodystyling Do 10:30 live, Bellicon Do 16:30 raus; „Gültig ab“ gilt nicht im PDF, Slots #556/#557 wieder gelöscht, Rückkehr zum 19.10. offen.
- Aufgussplan-Tausch bei Balance von Hand erledigt; Ticket #772 deckte die Sackgasse der Kursplan-Weiche auf.
- Hub v0.338.0 (657aa40): Kursplan-Auftrag aus Tickets (
kursplan.aenderung); 23.09. Ticketsystem main gepusht, Live-Probe über Ticket #752. - Hub v0.292.1 (0bf8a48): Kursplan-Feed und PDF mit Standort-Rückfall.
- Hub v0.273.0 (74191a6): dritte Quelle aidoo, Pilot AktiVita (17 Termine).
- Hub v0.259.0 (840b207): Assistent kann viele Termine ändern (
kursplan_aendern). - Hub v0.255.0 (b10a19a): sechs Darstellungen je Kunde, Vorschau-Links, Niveau E/M/F in allen Templates.
- Hub v0.246.4 (ff0eab0) Verordnungs-Kennzeichen, v0.246.5 (3058bc3) Farbwelten; Build-Fehler kachelStil in 8 preprod-Builds, MyTime main nachgezogen (a31b5f8).
- Hub, Commit 39c6e5a: Termin-Niveau E/M/F und Kategorie-Filter
?kat=. - Hub v0.188.5 (8aa7b1b): PDF mit vollständigen Kursnamen, Fortsetzungsseiten.
- Hub v0.146.0: Magicline als Terminquelle, Pilot fitmax (6 Termine, Prebuild geprüft).
- Hub v0.115.0, v0.118.0, v0.121.2: Bau-Knöpfe, PDF je Kunde, Termin-Hinweise überall; Prebuild-Fallback und Kursübersicht Variante F bei Balance.
- Hub v0.113.x: Kategorie-Optik je Kunde (Anlass Balance Kassel).
- Hub v0.62.0 (ddf07bb), v0.64.0 (0659550), v0.65.0 (ba5e836): Kurspool, Wochenplan-Editor, Standorte, Zeitschaltung.
Wo liegt was
- Hub-Code:
/root/sim-ops/hub/src/kurse.ts,kurseCore.ts(KURSPLAN_VARIANTEN, effektiveKategorie, Farbwelten),kursplanMagiclineCore.ts,aidooKursplan.ts,kursplanPdf.ts,kursplanAuftrag.tsundkursplanAuftragCore.ts, Portal-Editorhub/public/kursplan-editor.js. - Tabellen: kurs_kategorien, kurs_kategorien_kunde, kurs_aktivierungen, kurs_timeslots (mit niveau), kurs_ausnahmen, kurs_magicline_map (gilt auch für aidoo).
- Einstellungen je Kunde in
customers.mappings.kursplan: quelle, ausspielung (live oder build), variante, farbwelt, pdf_theme, pdf_akzent, pdf_motiv_upload_id. - Zentrale: Kundenakte › Reiter Website › Karten „Kursplan“ und „Kurs-Kategorien“; Betrieb › Kurse (Kurspool, ℞-Link am Master). Portal: Bereich Kursplan.
- Feeds:
/portal/kursplan.json,/portal/kursplan.pdf,/portal/kursplan-bild/:id. - Website-Dateien, immer zusammen kopieren:
src/components/SimKursplanKategorien.astro,src/lib/sim-kursplan-render.ts,src/styles/sim-kursplan-varianten.css; Prebuildprebuild-kursplan.mjs(Balance); Prebuild-JSON überprocess.cwd()lesen. - Doku: Wiki
20-Tools/Kursplan und Kurspool.md, Website-Vault10 Grundlagen/Kursplan und Kursuebersicht aus der SIM-Zentrale.md, Repo-Doku_WIKI/sim-kursplan-varianten.md, Vorschau-Sandbox ploenpreprod.studios-in-motion.com/kursplan-preview/. - Skript Balance:
/root/scripts/balance-kursplan-2026-10-19.sh.