Commit Graph
11 Commits
Author SHA1 Message Date
christianandClaude Opus 5 5d2bd8eff8 feat: Rueckfrage, bevor jemand von der Zentrale verdraengt wird
Ein einzelner Klick konnte den aktuellen Besetzer der Zentrale verdraengen.
Sitzt dort jemand anderes, kommt jetzt erst eine Rueckfrage, die die
betroffene Person nennt und sagt, was mit ihr passiert - je nach Lage
Rueckstellung auf das eigene Tuerschild, Vermerk als Stamm-Besetzer, oder
der Hinweis dass sie ohnehin dorthin gehoert. Ist die Zentrale frei, wird
ohne Rueckfrage besetzt.

Eine Rueckgabe zu erzwingen waere die naheliegende Alternative, wurde aber
bewusst nicht gebaut: wer abends ohne Freigabe nach Hause geht, wuerde die
Zentrale damit sperren. Am naechsten Morgen koennte niemand den Empfang
besetzen, weil der Vorgaenger nicht da ist um freizugeben. Genau diese
Sperre soll das Feature vermeiden.

Nebenbei eine Ungenauigkeit behoben: die Seite hat behauptet, der Besetzer
werde "auf das eigene Tuerschild zurueckgesetzt" - auch dann, wenn er gar
keines hat. Die drei Faelle werden jetzt unterschieden.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 09:14:45 +00:00
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 b02e6702e4 fix: Stamm-Besetzer der Zentrale kommt bei Freigabe zurueck
"Zurueck auf mein Tuerschild" hat die Zentrale nur ausgeschaltet, statt
ihren eigentlichen Besetzer wieder darauf zu setzen. Wer normalerweise am
Empfang sitzt, blieb nach einer Vertretung ohne Zuordnung.

Die Zentrale hat jetzt einen Stamm-Besetzer, ohne dass es dafuer eine
eigene Einstellung braucht: wer beim ersten Verdraengen keinen anderen
Platz gemerkt hat, bekommt das Zentral-Segment als Heimatplatz vermerkt.
Wird die Zentrale wieder frei, kommt er automatisch zurueck - egal wie
viele Vertretungen sich zwischenzeitlich abgewechselt haben.

Der Vermerk des Stamm-Besetzers bleibt dabei dauerhaft stehen, anders als
bei einer Vertretung: die Zentrale ist sein normaler Platz, nicht eine
Station, aus der er zurueckkehrt. Klickt er selbst "zurueck auf mein
Tuerschild", aendert sich deshalb nichts und die Seite erklaert es.

Damit gilt in beide Richtungen dieselbe Regel: wird ein Platz frei, kommt
zurueck, fuer wen er gemerkt ist.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 08:47:21 +00:00
christianandClaude Opus 5 11c8042de0 fix: Vorgaenger bei Uebernahme der Zentrale zurueckstellen
Bisher blieb der bisherige Besetzer der Zentrale nach einer Uebernahme
ohne Zuordnung. In der Praxis heisst das: er hat gar kein Licht mehr, und
es musste immer erst jemand "zurueck auf mein Tuerschild" klicken, damit
der Zustand wieder stimmte.

Die Uebernahme setzt den Vorgaenger jetzt selbst auf seinen gemerkten
Heimatplatz zurueck. Ist der inzwischen jemand anderem zugeordnet oder
war keiner gemerkt, bleibt er ohne Zuordnung - die Meldung auf der Seite
nennt den jeweiligen Grund.

Dabei darf das eben freigegebene Segment des neuen Besetzers nicht
ausgeschaltet werden, wenn der Vorgaenger genau dorthin zurueckkehrt -
sonst waere sein Licht sofort wieder aus.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 08:37:26 +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
christianandClaude Opus 4.6 6e6edd91db docs: README komplett ueberarbeitet - AIDA entfernt, modular
- Alle AIDA-Referenzen durch "Zeiterfassung" ersetzt
- Modulare Zeiterfassung dokumentiert (CSV + REST API)
- Azure-Einrichtung auf Webbasierte Auth aktualisiert
- Verweis auf detaillierte Azure-Anleitung
- Projektstruktur und Installer ergaenzt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-03 11:50:55 +02:00
christianandClaude Opus 4.6 6b316fc9da docs: README auf neues Repo und Installer aktualisieren
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-03 11:48:02 +02:00
christianandClaude Opus 4.6 3329a5dc5a docs: complete README rewrite with webhook, segments, CSV format, troubleshooting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 23:45:17 +02:00
christianandClaude Opus 4.6 ce19dec8c1 docs: rewrite README with Azure setup guide and troubleshooting
Also improve dashboard to show 'Warte auf Status...' instead of
gray bars when user is assigned but no polling result exists yet.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 22:11:57 +02:00
christianandClaude Opus 4.6 a41849ff7d docs: add README with installation and usage instructions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 20:49:59 +02:00