Kaffeeliste-Ausdruck: adaptives Layout nach Mitgliederzahl

Der PDF-Export war bisher immer zweiseitig (Vieltrinker-/Wenigtrinker)
mit fester Mindestzeilenzahl, unabhängig von der tatsächlichen
Mitgliederzahl. Umgestellt auf:

- Bis 49 aktive Mitglieder: eine Seite ohne Trennung.
- Ab 50 Mitgliedern: weiterhin zwei Seiten (Vorder-/Rückseite).
- Zeilenhöhe richtet sich nach der Mitgliederzahl (16-40px), statt fest
  16px für alle.
- Neue Mandanten-Einstellungen: freie Zeilen für neue Mitglieder an/aus,
  Trennmodus bei zwei Seiten (Trinkverhalten oder alphabetisch).

Migration 0015 ergänzt die dafür nötigen tenant_settings-Spalten.
Gegen die Dev-DB verifiziert: 8 Mitglieder -> einseitiges PDF,
53 Mitglieder (temporäre Testdaten) -> zweiseitiges PDF, Einstellungen
inkl. Validierung geprüft.
This commit is contained in:
2026-07-19 22:42:12 +02:00
parent 7630a35bf4
commit 5e6262b6a8
6 changed files with 193 additions and 92 deletions
+13 -27
View File
@@ -22,35 +22,21 @@ Noch nicht entschieden/umgesetzt.
## Kaffeeliste-Ausdruck (PDF-Export) als zentrale Funktion
Der PDF-Ausdruck (`exportKaffeeliste.php`, siehe
`docs/m6-import-export-mail.md` für den aktuellen Umsetzungsstand) soll
zu einer zentralen, prominent beworbenen Funktion werden aktuell fixe
zweiseitige Vieltrinker-/Wenigtrinker-Ausgabe mit fester Mindestzeilenzahl
(63/64), ohne Rücksicht auf die tatsächliche Mitgliederzahl.
**Erledigt (2026-07-19)**, siehe `docs/m6-import-export-mail.md` Abschnitt
„Nachtrag: Adaptives Layout nach Mitgliederzahl" für Details:
Neue Anforderungen:
- ✅ Adaptives Layout nach Mitgliederanzahl (Zeilenhöhe 1640px je nach
Mitgliederzahl).
- ✅ Vorder-/Rückseite bzw. mehrere Seiten erst ab 50 Mitgliedern
(`EXPORT_MULTI_PAGE_THRESHOLD`), darunter eine einseitige Liste.
- ✅ Admin-Einstellung „Freie Zeilen für neue Mitglieder"
(`tenant_settings.pdf_show_empty_rows`, Formular in
`mandant-einstellungen.php`).
- ✅ Trennmodus bei mehreren Seiten wählbar: Trinkverhalten oder
alphabetisch (`tenant_settings.pdf_split_mode`).
- **Adaptives Layout nach Mitgliederanzahl.** Bis 50 Mitglieder passen
auf eine Seite; die Zeilenhöhe/-größe soll sich an der Mitgliederzahl
orientieren (weniger Mitglieder → größere, besser lesbare Zeilen statt
fester Zeilenhöhe wie bisher).
- **Vorder-/Rückseite bzw. mehrere Seiten erst ab 50 Mitgliedern.**
Unterhalb dieser Schwelle reicht eine einseitige Liste; die bestehende
Vieltrinker-/Wenigtrinker-Aufteilung auf zwei Seiten wird zur Option ab
50 Mitgliedern, nicht mehr Standard für alle Mandanten.
- **Admin-Einstellung: freie Zeilen für neue Mitglieder.** Der Admin soll
konfigurieren können, ob die Liste zusätzliche leere Zeilen für neue
Mitglieder enthält (aktuelles Verhalten: Auffüllen bis `minRows`) oder
nur die tatsächlich vorhandenen Mitglieder zeigt.
- **Trennmodus bei mehreren Seiten wählbar.** Zur Auswahl: Trennung nach
Trinkverhalten (wie bisher: vorne Vieltrinker, hinten Wenigtrinker) oder
einfach alphabetisch über alle Seiten.
Technisch vermutlich als neue Spalten in `tenant_settings`
(vgl. `database/migrations/0002_saas_identity_tenants.sql`) abzubilden,
z. B. `pdf_show_empty_rows`, `pdf_multi_page_threshold`,
`pdf_split_mode` (`drinking_behavior` | `alphabetical`) noch nicht
entschieden, nur als naheliegender Ansatzpunkt notiert.
Die Kaffeeliste als zentrale, prominent beworbene Funktion auf der
Landingpage darzustellen (siehe unten) ist noch offen.
### RFID-Kartenerfassung (zukünftig, nicht öffentlich bewerben)