Commit Graph
3 Commits
Author SHA1 Message Date
christianandClaude Opus 5 0867221a3c fix: Zentrale-Seite zeigt den Zustand und den Weg zurueck
Zwei Handhabungsprobleme, die zusammengehoeren.

Auf /zentrale gab es ueberhaupt keinen Knopf zum Zurueckgeben - den fand
man nur ueber den Direktlink, den man nach einer Uebernahme in der Hand
hatte. Wer stattdessen /zentrale aufrief, konnte nur weiter uebernehmen
und sah nicht, dass erst zurueckgesetzt werden muss.

Ausserdem rendern die POST-Endpunkte ihr Ergebnis direkt. Man blieb also
auf /api/zentrale/uebernehmen stehen: eine Adresse, die beim Neuladen die
Aktion wiederholt und den Zustand nicht widerspiegelt.

Neu:

- Zwei Schritte. /zentrale fragt nur die Durchwahl ab und leitet auf
  /zentrale/{durchwahl} um. Diese Zustandsseite ist die Adresse fuer den
  Alltag, als Lesezeichen oder QR-Code, und ist gefahrlos neu ladbar.
- Die Knoepfe richten sich nach der Lage: frei -> besetzen, fremd besetzt
  -> uebernehmen samt Hinweis was mit dieser Person passiert, selbst
  besetzt -> zurueck auf mein Tuerschild, eigener Stammplatz -> kein
  Knopf, nur der Hinweis dass nichts zu tun ist.
- Alle Aktionen antworten mit POST/Redirect/GET auf die Zustandsseite und
  uebergeben nur einen kurzen Code fuer die Bestaetigung. Die Einzelheiten
  - wer sitzt drauf, wer wartet, wer blockiert den Heimatplatz - leitet
  die Seite bei jedem Aufruf frisch aus dem echten Zustand ab.
- Die allgemeine Seite nennt den aktuellen Besetzer und, falls vorhanden,
  wer bei einer Freigabe automatisch zurueckkommt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 09:08:08 +00:00
christianandClaude Opus 5 09d9837dec feat: kundenspezifisches Logo unter Einstellungen
Bisher war das Logo fest im Repository verdrahtet. Damit hat ein Update
das Logo eines Kunden ueberschrieben - beim Sprung auf den modularen
Stand zum Beispiel von logo.svg auf die mitgelieferte logo.png.

Unter Einstellungen > Logo laesst sich jetzt ein eigenes Logo hochladen.
Es erscheint in der Seitenleiste, auf der Login-Seite und auf der
Zentrale-Seite, mit Vorschau auf hellem und dunklem Grund.

- Datei liegt unter static/custom/ und ist per .gitignore von der
  Versionierung ausgenommen, ein git pull ueberschreibt sie also nicht
- PNG, JPG, SVG, WEBP, GIF bis 2 MB; Format und Groesse werden geprueft
- es bleibt immer genau eine Datei liegen, alte Endungen werden entfernt
- fehlt die Datei, greift automatisch das mitgelieferte Logo
- Upload und Zuruecksetzen liegen hinter dem Admin-Login
- logo_url() ist als Jinja-Global registriert, damit auch die Seiten ohne
  _ctx() (Login, Zentrale) dasselbe Logo zeigen

.gitignore ergaenzt: static/custom/ sowie die bisher fehlenden
busylight.db-shm, busylight.db-wal und Status.csv - letztere lagen auf
dem Produktivsystem als untracked herum.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 08:55:16 +00:00
christianandClaude Opus 5 086b21dc2b feat: Zentrale per Durchwahl selbst besetzen
Das Busylight im Empfangsbereich wird wechselnd besetzt. Mitarbeiter
koennen sich jetzt selbst darauf setzen, ohne Admin-Passwort.

- Neue Seite /zentrale (Durchwahl eingeben) und /zentrale/{durchwahl}
  als Direktlink fuer QR-Codes. Der Direktlink zeigt nur an und aendert
  nichts, damit Link-Vorschau und Prefetch niemanden versetzen.
- Neue Tabelle home_assignments merkt das eigene Tuerschild, solange der
  Mitarbeiter in der Zentrale sitzt. Beim Verlassen wird es
  wiederhergestellt, das Zentral-Segment wird freigegeben.
- Der Vorgaenger bleibt ohne Zuordnung - er ist nicht da. Sein gemerkter
  Heimatplatz bleibt erhalten, er kann jederzeit zurueckkehren.
- Ist der Heimatplatz inzwischen belegt, wird die Rueckkehr abgelehnt
  und nichts geaendert.
- Eine ausdrueckliche Admin-Zuordnung verwirft den gemerkten Heimatplatz.
  Ein reines Loeschen der Zuordnung nicht, sonst kaeme niemand mehr von
  der Zentrale zurueck.
- Farbe wird sofort ans Geraet geschickt (scheduler.push_user_light).
  Das Polling allein reicht nicht: _process_user sendet nur bei einer
  Statusaenderung, und beim Platzwechsel bleibt der Status gleich.
- Neue Settings selfservice_device_id und selfservice_segment,
  einstellbar unter Einstellungen.
- Jeder Wechsel landet im Protokoll (zentrale / zentrale_frei).

Die Durchwahl ist eine Kennung, kein Geheimnis - im README dokumentiert.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 08:12:42 +00:00