feat: Schalter platziert die Willkommensseite sofort

Die Willkommensseite ist je Standort identisch. Bisher musste man nach
dem Einschalten des Schalters "Willkommensseite hier anzeigen" erneut
generieren, damit sie auf dem Screen ankam - ein Handgriff ohne anderes
Ergebnis, und ohne Rueckmeldung, dass er noetig ist.

- sync_welcome_for_screen() kopiert beim Einschalten eine vorhandene
  welcome.html in den Screen und setzt sie vorne in die Playlist; beim
  Ausschalten werden Eintrag und Datei entfernt. Aufgerufen aus
  update_screen(), nur wenn sich der Schalter wirklich aendert.
- save_welcome_page() legt zusaetzlich eine Standort-Kopie unter
  media/<site>/welcome.html an, die nie geloescht wird. Ohne sie waere
  nach dem Abschalten aller Screens keine Quelle mehr vorhanden und der
  Schalter wuerde wieder stillschweigend nichts tun.

Nebenbei behoben: beim Generieren wurde welcome.html aus abgewaehlten
Screens nur aus der Playlist entfernt, die Datei blieb liegen. Bei
leerer Playlist spielt player() noch nicht verzeichnete Dateien aus dem
Ordner ab - die Begruessung waere dort also weiter zu sehen gewesen.

README, AGENTS.md und Hilfeseite nachgezogen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik Thiele
2026-09-02 14:54:44 +02:00
parent 048f2499d8
commit 9dae841461
5 changed files with 110 additions and 3 deletions

10
app.py
View File

@@ -1591,7 +1591,15 @@ def update_screen(site, screen):
cfg["newsticker_text"] = request.form.get("newsticker_text", "")
cfg["newsticker_enabled"] = "newsticker_enabled" in request.form
cfg["stay_on_first"] = "stay_on_first" in request.form
cfg["welcome_enabled"] = "welcome_enabled" in request.form
welcome_an = "welcome_enabled" in request.form
vorher = cfg.get("welcome_enabled")
cfg["welcome_enabled"] = welcome_an
# Beim Umlegen des Schalters die Willkommensseite sofort platzieren bzw.
# entfernen - sie ist je Standort identisch, ein erneutes Generieren
# waere also nur ein zusaetzlicher Handgriff ohne anderes Ergebnis.
if vorher != welcome_an:
generate_welcome_page.sync_welcome_for_screen(config, site, screen, welcome_an)
save_config(config)
return redirect(f"/admin/{site}")