Das SENAITE-Dashboard liegt unter /senaite-dashboard. Es
ist eine eigene Ansicht, getrennt von der Probenliste (die
filterbare Tabelle, mit der Sie den ganzen Tag arbeiten). Das
Dashboard ist das, was Sie ansehen, wenn Sie eine Form der
Arbeit sehen wollen: wie viele Proben in welchem Zustand
sind, wie viele Arbeitsblätter offen sind und wie sich diese
Zahlen in der letzten Woche oder im letzten Monat bewegt
haben.
Die drei Ebenen
Der Dashboard-Code (senaite.core.browser.dashboard) rendert
in drei Ebenen.
Begrüßung und Status-Karten. Ihr Name, das aktuelle Datum
und die Uhrzeit sowie ein kleines Set berechtigungsgesteuerter
Karten mit hochauflösenden Zahlen (Proben zum Empfangen,
Arbeitsblätter zum Verifizieren, dieser Art). Jede Karte prüft
eine spezifische Berechtigung (TransitionReceiveSample,
TransitionVerify, EditResults, AddAnalysisRequest,
ManageBika), bevor sie erscheint. Nutzer sehen nur Karten,
auf die sie handeln können.
Schnellzugriff-Links. Rollenabhängige Shortcuts: Proben registrieren, Arbeitsblätter, Verifizieren, Veröffentlichen, Setup. Dieselbe rollenbasierte Sichtbarkeit wie die Status-Karten.
Statistik-Sektionen. Der interessante Teil. Drei Panels
(Proben, Analysen, Arbeitsblätter), jedes mit einer Zahl pro
Workflow-Zustand plus einem Balkendiagramm der Entwicklung
über die Zeit. Dieser Bereich ist mit senaite.core: View Dashboard gesperrt, standardmäßig LabClerk, LabManager und
Manager gewährt.
Was das Proben-Panel tatsächlich zeigt
Für jeden Workflow-Zustand, in dem eine Probe sein kann, eine Kachel mit Zahl und Click-Through auf die vorgefilterte Liste:
- Empfang ausstehend (
sample_due) - Ergebnisse ausstehend (
sample_received) - Zu verifizieren
- Verifiziert
- Veröffentlicht
Wenn der Sampling-Workflow aktiv ist, erscheinen drei weitere Kacheln darüber: Zu beproben, Zu konservieren, Beprobung geplant. Wenn der Printing-Workflow aktiv ist, kommt eine zusätzliche Kachel “Zu drucken” dazu.
Unterhalb der Zahlen-Kacheln steht das Diagramm Entwicklung der Proben. Balkendiagramm, ein Balken pro Zeit-Bucket (Tag, Woche, Monat je nach Periodizität), farbcodiert nach Workflow-Zustand. Dieses Diagramm ist der Grund, das Dashboard zu öffnen: Es zeigt, ob sich Arbeit anstaut, durchläuft oder konstant bleibt.
Die Analysen- und Arbeitsblatt-Panels
Dieselbe Form. Analysen hat eigene Workflow-Zustand-Kacheln und ein eigenes Diagramm “Entwicklung der Analysen”. Arbeitsblätter ist kleiner: Ergebnisse ausstehend, Zu verifizieren, Verifiziert, plus das Diagramm “Entwicklung der Arbeitsblätter”.
Jedes Panel fragt seinen eigenen Katalog (SAMPLE_CATALOG,
ANALYSIS_CATALOG, WORKSHEET_CATALOG), und jedes
Entwicklungsdiagramm zählt pro Workflow-Zustand pro Periode.
Der Async-Loading-Kniff
Das Dashboard-Grundgerüst (Begrüßung, Schnellzugriff-Links,
Sektionsüberschriften) rendert sofort, ohne
Datenbank-Queries. Jede Zahl und jedes Diagramm wird
asynchron aus einem JSON-Endpunkt geladen
(@@senaite-dashboard-data).
Jede Sektion holt unabhängig. Eine langsame Query auf einer Sektion (etwa eine ungewöhnliche Worksheet-Anfrage) blockiert die anderen nicht. Deshalb wirkt das Dashboard auch auf Datenbanken mit Hunderttausenden Proben flott.
Caching
Zahlen sind mit @ram.cache für 5 Minuten gecached,
nutzerübergreifend. Der Cache-Key enthält die volle Query und
den Katalognamen; verschiedene Filter (“meine” vs “alle”)
bekommen eigene Cache-Einträge.
Entwicklungsdiagramm-Daten sind 2 Stunden gecached. Bewusst: Die Form des Diagramms ändert sich nicht minutenweise sinnvoll, und der Rebuild trifft den Katalog mit Queries pro Bucket, was nicht umsonst ist.
Filter, die die Sicht formen
Der “meine” vs “alle”-Filter auf jedem Panel ist ein Cookie-basierter Schalter, der einen Filter zur Basis-Query hinzufügt. “Meine” schränkt auf die dem eingeloggten Nutzer zugewiesene Arbeit ein. “Alle” zeigt das ganze Labor. Manager parken meist auf “alle”; Analytiker wechseln zu “meine” während ihrer Schicht.
Die Periodizität (Tag / Woche / Monat) ändert die Bucket-Größe im Entwicklungsdiagramm. Ein Labor mit 500 Proben pro Tag wählt Tagesbuckets und sieht einen feinen Trend. Ein Labor mit 30 Proben pro Woche wählt Wochenbuckets, damit die Balken nicht alle Null sind.
Die Gewohnheit, die sich lohnt
Öffnen Sie das Dashboard morgens als Erstes. Schauen Sie auf die Entwicklungsdiagramme, nicht nur auf die Zahlen. Ein steigender “Zu verifizieren”-Trend über zwei Wochen ist ein Signal, dass die Verifizierungskapazität nachlässt. Ein gezacktes “Probe empfangen”-Muster ist ein Signal, dass der Empfang stoßweise läuft und Load-Leveling vertragen könnte. Die Zahlen zeigen den aktuellen Zustand; die Diagramme zeigen den Trend.
Keine dieser Größen erscheint in einer Liste. Genau dafür ist das Dashboard da.