Skip to content

Feature/setzliste qttr - #15

Merged
PBuchmann merged 18 commits into
mainfrom
feature/setzliste-qttr
Oct 14, 2026
Merged

PBuchmann merged 18 commits into
mainfrom
feature/setzliste-qttr

Conversation

@PBuchmann

Copy link
Copy Markdown
Owner

Was ändert sich?

Titel: Version 0.9.8: Kompaktspieltage planen, drucken und erfassen

Beschreibung:

Dieser Pull Request bringt die Planung von Kompaktspieltagen für Jugend-Halbrunden (3er- und 4er-Spieltage in einer Halle) und alles, was dazugehört. Die Einzelheiten stehen in CHANGELOG.md unter 0.9.8.

Kompaktspieltage

Berechnung mit HiGHS: kürzester Plan, bestes Gesamtpaket, Spitzen- und Abstiegsspieltag, weitere Varianten mit Punkten und Erläuterung
Meldungen im Raster erfassen, Karte der Fahrten, Spieltage mit den in click-TT zu verlegenden Hallen
Überall volle Mannschaftsnamen. Die Karte setzt Namen notfalls mit Hinweislinie oder als Nummer mit Legende und zoomt auch auf Stadtklassen.
Druck „Übersicht für die Vereine“, im Kompaktmodus der einzige Druck: Raster, Karte, Spieltage und je Mannschaft eine Seite
Gespeicherte Pläne und Export für click-TT im Kompaktmodus
Auch ohne Plan ohne Verstöße bleibt die Berechnung bedienbar: Fortschritt und Stopp funktionieren bei großen Modellen.
Öffnen und Einrichtung

XML-Datei, Mannschaftsmeldung (CSV) und Terminwünsche (PDF) lassen sich zusammen öffnen. Passende Dateien werden gleich übernommen.
Eine erkannte Kompaktklasse ist in der Einrichtung vorgewählt.
Setzliste mit TTR-Werten aus der Mannschaftsmeldung
Anleitung

Neu gegliedert: Kapitel 5 „Normale Runden optimieren“, Kapitel 6 „Kompaktspieltage planen“
anleitung.cmd erzeugt das PDF unter Windows ohne Installation.
Geprüft: Build ohne Warnungen, alle Tests grün (1137).

Checkliste

  • bauen.cmd (bzw. dotnet build und dotnet test) läuft ohne Fehler und Warnungen, alle Tests grün
  • Neue oder geänderte Logik ist durch Tests abgedeckt
  • Neue Dateien haben den SPDX-Kopf (siehe CONTRIBUTING.md)
  • Bedienung geändert? Dann Doku/ANLEITUNG.md angepasst (und Bilder, falls nötig)
  • Fachliches Verhalten oder Abweichung vom Original? Dann im Änderungsprotokoll von Doku/MIGRATIONSPLAN.md vermerkt
  • Keine echten Testdaten, Klarnamen, persönlichen Pfade oder Zugangsdaten im Commit
  • Neue Bibliothek? Lizenz zulässig (MIT/Apache/BSD/LGPL) und in THIRD-PARTY-NOTICES.md eingetragen

PBuchmann and others added 18 commits October 12, 2026 14:46
…aliert

TTR-Schnitt und Stammspieler aus der Mannschaftsmeldung werden an der Mannschaft
gespeichert, in der Setzliste gezeigt; Befehl „Nach TTR ordnen“. Fortsetzen zeigt
Strich und Play statt des Start-Symbols. Säulen der Rechenkerne füllen die Höhe,
Spur zeigt 100 %. Bildschirmfotos und Anleitung.pdf neu.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPXzdFCpdtwdYcyQVmsnhH
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPXzdFCpdtwdYcyQVmsnhH
- Einrichtungspunkt "Klasse mit Kompaktspieltagen" (Halbrunde mit
  ueberwiegend Spieltagen am Wochenende), Schalter am Plan
- Ansicht "Kompaktspieltage": Meldungen aus den Terminwuenschen, Raster,
  Karte (Bundeslaender aus Natural Earth, Staedte), km in Luftlinie,
  Spieltage mit zu verlegenden Hallen, Hinweise
- "(HR)" im Klassennamen: nur Hinrunde, "(FR)": nur Rueckrunde, ohne
  Rueckfrage; Rundenplanung in den Einstellungen dann fest
- tools/karte/umrisse.py, Tests, Anleitung, Changelog, Migrationsplan

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPXzdFCpdtwdYcyQVmsnhH
- Kompaktplaner: zufällige Suche (3er/4er, Einzel bei gerader Zahl),
  Varianten ausgewogen, kürzeste Fahrten, gleichmäßiger Stand,
  gemeinsamer Spieltag; Festhalten und Fahrtwünsche
- Viererbaum: Branch and Bound über alle Pläne nur aus 4er-Spieltagen
  (9 bzw. 10 Mannschaften), parallel; 3er-Plan nur, wenn kürzer
- Kompaktmodus: Kompaktansicht als Hauptansicht, eigene Kacheln,
  ohne Kosten/Qualität/Meldungen und Verfahren; ▶ berechnet Varianten
- Bericht „Terminwünsche“ (PDF) bei Kompaktklassen Pflicht
- Tests, Anleitung, Changelog, Migrationsplan

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPXzdFCpdtwdYcyQVmsnhH
…eicherte Pläne, Export

- Pläne gezielt mit dem freien MIP-Löser HiGHS konstruiert (Engine ohne Paketabhängigkeit,
  Löser in Import, Brücke in Application); Portfolio paralleler Läufe mit verschiedenen Startwerten
- Punkte: 15 je Mannschaft ohne 3er/4er-Heimspieltag, 3 je fehlendem Spitzen-/Abstiegsspieltag
- Meldungen im Raster erfassen (A/H/B/Entf/Leertaste), Beginn, Halle, neue Tage als Zeilen
- Karte: gerade Fahrten, Pfeile, doppelte Fahrten als zwei Pfeilhälften, kurze Fahrten im Vordergrund
- Spitzen-/Abstiegsspieltag als Ring, Ausrichter/Gast als zentrierte Formen
- Gesicherter und gemerkte Pläne als Karten im Kompaktmodus, „Merken …“ auf der Variante
- CSV-Export im Kompaktmodus: Prüfung mit den Kompakthinweisen, Spiellokal des Ausrichters am Tag
- Wunschtermine/Setzliste/Qualität: kein Springen beim Klick (BringIntoView, Ziehschwelle)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPXzdFCpdtwdYcyQVmsnhH
…Spiellokale

- CSV-Export im Kompaktmodus: Prüfung mit den Hinweisen der Kompaktauswertung statt der normalen
  Plausiprüfung; Spiellokal des Ausrichters am Tag (Spiellokale.AmTag)
- Gesicherte und gemerkte Pläne speichern das Spiellokal (nur wenn vorhanden, sonst byte-gleich zum Original)
- Druck „Übersicht für die Vereine“: Raster mit Legende, Karte aller Fahrten mit km je Mannschaft,
  Spieltage, je Mannschaft eine Seite mit Karte ihrer Fahrten
- Kartenzeichner für Ansicht und PDF (IZeichenflaeche: Vieleck, Text mit Rand, Deckkraft, Ausschnitt);
  Namen mit gemessener Breite ganz im Bild
- Raster: ★/● wieder sichtbar (Stil :is(Shape))
- Erfundene Testklasse testdaten/kompakt (tools/kompaktklasse), Bildschirmfotos 30–34, Anleitung 6.8 neu
- Tests: Zeitgrenzen der Planer-Tests robust gegen Last und Abdeckungsmessung

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPXzdFCpdtwdYcyQVmsnhH
TextBox und CalendarDatePicker in der Ansicht Kompaktspieltage nutzen PlaceholderText;
damit baut die Solution wieder ohne Warnungen (AVLN5001).

Co-Authored-By: Claude <noreply@anthropic.com>
Nach den gemeinsamen ersten Schritten stellt 3.5 normale Runden und Kompaktspieltage
gegenüber. Kapitel 5 beschreibt die Optimierung normaler Runden (Kacheln, Steuerung,
Automodus, Leitstand, Verlauf, Kosten, Qualität, Meldungen, Gewichtungen, Runden,
Bewertung), Kapitel 6 die Kompaktspieltage mit eigenem Weg zum Plan, Kompaktmodus,
Daten aus click-TT, Berechnung, Punkten, Raster und Karte, Bearbeiten, Sichern,
Druck und Export. Danach die gemeinsamen Ansichten, Export und Druck, Spielplandaten
und Tipps. Verweise angepasst, Stil für h4, PDF neu erzeugt.

Co-Authored-By: Claude <noreply@anthropic.com>
anleitung.cmd ruft tools/anleitung/anleitung.ps1 auf: lädt pandoc beim ersten Lauf
als portables ZIP (feste SHA-256-Prüfsumme) nach %LOCALAPPDATA%\AndiGenerator.NET\werkzeuge,
baut das HTML unter %TEMP%, prüft Verweise und Bilder und druckt mit drucken.cs
(Playwright für .NET mit dem installierten Edge, Einstellungen wie pdf.js) nach
Doku/Anleitung.pdf. README und Projektwissen ergänzt; Kapitelangaben im Projektwissen
an die neue Gliederung angepasst.

Co-Authored-By: Claude <noreply@anthropic.com>
Im Kompaktmodus bietet der Druckdialog nur die Übersicht für die Vereine an:
ohne Häkchen, Planauswahl und Formatwahl, immer A4 hoch, mit dem in der Ansicht
gewählten Plan (Variante bzw. gespeicherter Plan, sonst Plan aus click-TT mit
Spielen); der Dialog und die Kopfzeile der PDF nennen ihn statt „Laufende
Generierung“. Ohne Plan ein Hinweis, PDF erzeugen gesperrt. Terminwünsche,
Spielplan und Mannschaftspläne waren doppelt, Nachbarmannschaften und Diagramme
ohne Bedeutung für Kompaktspieltage.

Klassenname und Raster „Meldungen und Plan“ sind jetzt eine Grafik: Bei vielen
Tagen wird sie auf die erste Seite verkleinert, statt auf die zweite zu rutschen
und eine Seite nur mit dem Klassennamen zu hinterlassen.

Tests für die Kompakt-Auswahl, die Seite bei vielen Tagen und (im Bildschirmfoto-
Lauf) den echten Druck im Kompaktmodus; Anleitung 6.11 und 8.2, Bild 34, PDF und
CHANGELOG angepasst.

Co-Authored-By: Claude <noreply@anthropic.com>
Bei lokalen Änderungen nur die betroffenen Testklassen (Testprojekt und Filter),
den vollen Lauf vor jedem Commit und auf Nachfrage.

Co-Authored-By: Claude <noreply@anthropic.com>
…ruck

- Überall der volle Name wie in click-TT statt eines abgeleiteten Kurznamens, der
  weder Ort noch eindeutig war; Kompaktplanung.Kurzname entfällt.
- Rasterkopf wächst mit dem längsten Namen, Namen über 15 Zeichen zweizeilig
  (geteilt nach „/“, „-“ oder Leerzeichen); Spieltagskarten so breit wie die
  längste Begegnung (310–560), Längeres bricht um statt „…“.
- Karte: Name weiter weg mit Hinweislinie, sonst Nummer und Legende in einer
  freien Ecke; Mindestausschnitt rund 25 × 30 km, Rand im Verhältnis (Stadtklassen
  wie Hamburg); Test mit den Hamburger Hallen.
- Druck: Seite je Mannschaft mit Überschrift je Spieltag, Halle und je Spiel einer
  Zeile, mehr Abstand; Karte höchstens 340 hoch; Raster und Karte zentriert
  (Grafik.Zentriert); km-Liste mit gemessenen Spalten.
- Anleitung 6.7, Bilder 30–33, PDF, CHANGELOG, Projektwissen.

Co-Authored-By: Claude <noreply@anthropic.com>
…ung vorgewählt

- „Öffnen“ erlaubt Mehrfachauswahl: XML-Datei und dazu Mannschaftsmeldung (CSV)
  und Bericht „Terminwünsche“ (PDF). Jede Zusatzdatei wird wie in der Einrichtung
  übernommen, wenn alle Mannschaften der Staffel darin vorkommen; mit beiden ist
  „Daten aus click-TT ergänzen“ erledigt. Unpassende Dateien bleiben unberücksichtigt,
  die Einrichtung nennt die fehlenden Mannschaften. Falsche Auswahl (keine/zwei XML,
  fremde Typen) wird abgelehnt.
- Einrichtung: Bei einer erkannten Kompaktklasse gilt „Mit Kompaktspieltagen planen“
  wie angeklickt (Einrichtungsschritt.Vorwaehlen) und wird beim Abschließen übernommen.
- Tests, Anleitung 3.2/6.2/6.3, PDF, CHANGELOG.

Co-Authored-By: Claude <noreply@anthropic.com>
…te Zeitgrenze

Ohne Plan ohne Verstöße (z. B. viele fehlende Meldungen) wird das Modell mit
Verstößen rund 25.000 Spalten groß; das „Probing“ der HiGHS-Vorverarbeitung dauerte
dann bis zu 20 Minuten ohne Rückruf – kein Fortschritt, Stopp wirkungslos.
Modelle über 10.000 Spalten laufen jetzt ohne Presolve (erste Lösungen in Sekunden),
und jeder Schritt reicht seine Zeit mit Reserve als time_limit an HiGHS durch
(IGanzzahlloeser/Kompaktoptimierung: optionale Zeitgrenze). Mit einer echten Klasse
geprüft: Stopp nach 40 s greift nach 51 s, voller Lauf liefert Pläne nach gut 3 Minuten.

Co-Authored-By: Claude <noreply@anthropic.com>
CHANGELOG: Abschnitt „Unveröffentlicht“ wird 0.9.8 (14.10.2026), dazu der Eintrag
zur Berechnung bei fehlenden Meldungen. PDF der Anleitung neu erzeugt. CLAUDE.md:
PDF nur vor einem Pull Request bauen, Ablauf eines Releases, Arbeit an 0.9.9.
Projektwissen: Stand und offene Punkte.

Co-Authored-By: Claude <noreply@anthropic.com>
Highs.Native 1.15 liefert keine native Bibliothek für win-arm64 (nur win-x64/x86,
Linux und macOS). Das Programm plant dort ohne HiGHS (vollständige Suche); die drei
Tests, die HiGHS voraussetzen, schlugen im CI-Lauf auf windows-11-arm fehl. Sie
tragen jetzt [HighsFact]/[HighsTheory] und werden nur unter Windows ARM64 mit
Begründung übersprungen – auf x64, Linux und macOS laufen sie wie bisher.
Anleitung 6.5 und CHANGELOG: für Kompaktspieltage auf ARM-Laptops die x64-Fassung.

Co-Authored-By: Claude <noreply@anthropic.com>
@PBuchmann
PBuchmann merged commit c16e5af into main Oct 14, 2026
8 checks passed
@PBuchmann
PBuchmann deleted the feature/setzliste-qttr branch October 14, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant