Zum Inhalt

Kategorienverwaltung

Unter Administration > Kategorien (/v2/admin/categories) werden hierarchische Kategorien für verschiedene Ressourcen verwaltet.

Kategorienverwaltung

Unterstützte Ressourcen

Kategorien können für folgende Ressourcen definiert werden:

  • Inventar — z. B. Elektrisch, Mechanisch, Dimensional
  • Kalibrierung — z. B. Vor-Ort, Labor, Extern
  • Reparatur — z. B. Garantie, Kostenpflichtig
  • Buchung — z. B. Intern, Extern
  • Standort — die Art einer Bewegung, z. B. Kundenleihe, interne Umlagerung, Reparaturversand

Was hier bewusst fehlt

Zwei Bereiche haben Kategorien, tauchen in dieser Auswahl aber nicht auf:

Bereich Wo stattdessen
Verleih Kein eigener Typ. Eine Leihkategorie ist eine Inventar-Kategorie mit gesetztem Kennzeichen verleihbar. Der Verleih greift auf den Gerätebestand zu, ein eigener Katalog hätte keine Geräte.
Tickets Eigener Katalog unter Ticket-Verwaltung, Reiter Kategorien. Ticket-Kategorien sind flach, ohne Farbe und ohne Nummernzähler — sie teilen das Datenmodell dieser Seite nicht.

Standort-Kategorien

Standorte sind der eine Bereich, den calServer V2 gegenüber V1 ergänzt: Ein Standorteintrag ist eine Bewegung, und die Bewegungsart ist genau das, was eine Kategorie trägt. Der Status auf derselben Zeile beantwortet die andere Frage — wie weit die Bewegung ist, nicht welcher Art sie ist.

Die Zuordnung läuft wie in den übrigen Bereichen über den Kategorie-Picker der Detailansicht; in der Standortliste steht Kategorie als Spalte samt Filter „inkl. Unterkategorien" zur Verfügung.

Bestehende Installationen

Die Spalte kommt beim Update automatisch dazu, aber nur für Installationen, deren Standort-Grid bereits Felder trägt. Ein noch unberührtes Grid bekommt sie mit seiner Feldvorlage.

Hierarchie

Kategorien unterstützen Parent-Child-Beziehungen: Oberkategorien gruppieren Unterkategorien, die Verschachtelungstiefe ist nicht begrenzt.

Die Seite hat dafür zwei Ansichten, umschaltbar über Hierarchie / Liste:

Ansicht Wofür
Hierarchie (Voreinstellung) Der Kategoriebaum zum Auf- und Zuklappen. Hier wird die Struktur gepflegt.
Liste Flache, sortier- und durchsuchbare Tabelle über alle Kategorien. Die Spalte Übergeordnet zeigt die Einordnung, geändert wird sie in der Hierarchie.

In der Hierarchie-Ansicht:

  • Ziehen und fallen lassen hängt eine Kategorie unter eine andere. Die Fläche „Hierarchie verlassen" unter dem Baum macht sie wieder zur Hauptkategorie.
  • Das Zeilenmenü (⋮) kann dasselbe ohne Maus: Unterkategorie anlegen, Nach oben / Nach unten, Aus Hierarchie lösen.
  • Alle ausklappen / einklappen über dem Baum.

Zwei Regeln setzt der Server durch, unabhängig davon, über welchen Weg die Änderung kommt:

  • Übergeordnete und untergeordnete Kategorie müssen zum selben Bereich gehören (keine Inventarkategorie unter einer Reparaturkategorie).
  • Eine Kategorie kann nicht unter sich selbst oder eine ihrer eigenen Unterkategorien gehängt werden — der Ast wäre danach von keiner Wurzel mehr erreichbar.

Eine Kategorie mit Unterkategorien lässt sich nicht löschen, solange diese existieren. Erst die Unterkategorien verschieben oder löschen.

Übernahme aus calServer V1

Kategorien wandern bei der Migration vollständig mit, inklusive Hierarchie und aller Gerätezuordnungen — die interne Kennung bleibt dieselbe, es wird nichts neu vergeben.

V1 hat allerdings beim Löschen und Umhängen nichts geprüft. Eine dort gelöschte Oberkategorie ließ ihre Unterkategorien auf eine Kennung zeigen, die es nicht mehr gibt; V1 hat solche Zweige dann einfach nicht mehr angezeigt. calServer V2 räumt das bei der Übernahme automatisch auf: Ein Elternverweis ohne gültiges Ziel wird geleert, die betroffene Kategorie steht danach als Hauptkategorie im Baum. Gelöscht wird nichts, und kein Gerät verliert seine Kategoriezuordnung.

Für Installationen, die schon vor dieser Prüfung übernommen wurden, läuft die Bereinigung einmalig beim Update mit. Prüfen oder wiederholen lässt sie sich jederzeit:

# Bericht, schreibt nichts
docker exec calserver-api-v2 php artisan categories:repair-hierarchy

# ... und wirklich bereinigen
docker exec calserver-api-v2 php artisan categories:repair-hierarchy --apply

Wirkung in den Listen

Die Kategoriespalte einer Liste (Inventar, Kalibrierung, Reparatur, Buchung, Standorte) zeigt die Hierarchie als aufklappbaren Filter. Über den Spaltenfilter (Trichter-Symbol) steht dort neben ist auch inkl. Unterkategorien: Damit findet der Filter auf „Druck" auch die Geräte, die nur in „Federmanometer" darunter hängen.

Der Filter meint dabei genau die ausgewählte Kategorie, nicht ihren Namen. Das ist der Unterschied, wenn zwei Äste dieselbe Bezeichnung tragen — eine Unterkategorie „Sensoren" unter „Druck" und eine zweite unter „Temperatur" sind zwei Einträge im Baum, jeder unter seiner Oberkategorie, und jeder filtert nur seine eigenen Geräte.

Ältere Filter und Lesezeichen

Filter, die vor dieser Umstellung gespeichert wurden, sowie aus V1 übernommene erweiterte Filter arbeiten mit dem Kategorienamen. Sie funktionieren unverändert weiter: Die API akzeptiert beide Formen. Ein Name, den mehrere Kategorien tragen, trifft dabei weiterhin alle davon — wer das schärfer haben will, wählt die Kategorie im Baum neu aus.

Kategoriefelder

Jeder Kategorie können spezifische Feldkonfigurationen zugeordnet werden:

  • Felder können pro Kategorie ein-/ausgeblendet werden
  • Pflichtfeld-Status kann je Kategorie variieren
  • Ermöglicht unterschiedliche Formulare pro Gerätetyp

Kennzeichen „verleihbar"

Inventar-Kategorien tragen zusätzlich das Kennzeichen verleihbar. Es steuert, welche Geräte das Leihmodul überhaupt anbietet: Ein Gerät erscheint in der Geräteauswahl genau dann, wenn es mindestens einer verleihbaren Kategorie angehört.

Das Kennzeichen wirkt additiv über die Kategoriezuordnung — ein Gerät in mehreren Kategorien ist verleihbar, sobald eine davon markiert ist. Die Kategoriehierarchie spielt dabei keine Rolle: Das Kennzeichen wird nicht an Unterkategorien vererbt, jede Kategorie trägt es selbst.

Die Gerätehierarchie dagegen zählt sehr wohl, und zwar in eine Richtung: Ist ein übergeordnetes Gerät nicht verleihbar, sind die Geräte darunter es ebenfalls nicht — die Markierung ihrer eigenen Kategorie ändert daran nichts. Wer den Inhalt eines Sets verleihen will, muss also auch das übergeordnete Gerät freigeben.

Kategorie erstellen

  1. Wählen Sie die Ressource (Typfilter über dem Baum). Für eine Leihkategorie ist das Inventar — das Kennzeichen „verleihbar" macht sie zur Leihkategorie, nicht der Typ.
  2. Klicken Sie auf Kategorie erstellen — oder im Zeilenmenü einer Kategorie auf Unterkategorie anlegen, dann ist die übergeordnete Kategorie schon gesetzt
  3. Vergeben Sie einen Namen
  4. Optional: Übergeordnete Kategorie wählen (leer = Hauptkategorie)
  5. Speichern

Bereich einer Kategorie wechseln

Eine Kategorie, die im falschen Bereich gelandet ist, muss nicht gelöscht und neu angelegt werden: Das Feld Typ im Bearbeiten-Dialog verschiebt sie. Der Server setzt dabei drei Regeln durch:

  • Unterkategorien wandern mit. Ein Ast ist eine Einheit; ein zurückgebliebenes Kind fände seine übergeordnete Kategorie nicht mehr.
  • Die Kategorie verlässt ihre übergeordnete Kategorie, wenn diese im alten Bereich bleibt, und steht danach als Hauptkategorie im neuen Bereich — der Dialog muss dafür nichts umstellen. Wer sie gleich einhängen will, wählt im selben Schritt eine übergeordnete Kategorie aus dem neuen Bereich.
  • Zugeordnete Datensätze blockieren den Wechsel. Die Zuordnung trägt den alten Bereich als Kennzeichen; sie mitzuziehen hieße, Geräte als Kalibrierungen zu führen. Die Meldung nennt die Anzahl — erst die Zuordnung lösen, dann den Bereich ändern.

Kategoriebaum als Paket exportieren und importieren

Über die Schaltfläche Paket über dem Baum lässt sich ein Kategoriebaum als Datei mitnehmen und anderswo wieder einspielen. Das Paket (calserver.category-package) trägt die Kategorien samt Kurzname, Farbe, Sortierung und den Kategoriefeldern — nicht aber die zugeordneten Datensätze. Welches Gerät in welcher Kategorie hängt, bleibt Sache der jeweiligen Installation.

Fertige Startvorlagen, etwa der nach Messgrößen gegliederte Inventarbaum für DAkkS-Kalibrierlabore, stehen auf der Download-Seite des Vorlagen-Repos in der Kategorie Kategorien bereit.

Punkt Verhalten
Wiedererkennung Über Typ, übergeordnete Kategorie und Name. Ein zweiter Import derselben Vorlage legt keine Zwillinge an.
Bestehende behalten (Vorgabe) Vorhandene Kategorien bleiben unverändert, fehlende werden angelegt.
Bestehende überschreiben Zusätzlich werden Darstellung und Sortierung aus dem Paket nachgezogen.
Kategoriefelder Werden in beiden Modi geschrieben — sie sind der Grund, warum jemand eine Vorlage einspielt.
Unbekanntes Feld Die Regel wird übersprungen und im Bericht als Warnung genannt; der Rest des Pakets kommt an.
Zähler Ein laufender Kategoriezähler wird nie zurückgesetzt; er steckt in bereits vergebenen Nummern.

Eigene Berechtigungen

Export und Import hängen an Kategorien exportieren (category_export) und Kategorien importieren (category_import). Wer Kategorien bearbeiten darf, hat sie damit nicht automatisch — der Export nimmt den ganzen Katalog als Datei mit, der Import bringt einen fremden herein. Die Rechte werden keiner Rolle automatisch zugewiesen.

Das Archiv enthält categories.json, ein manifest.json mit Prüfsumme je Datei und optional eine README.md. Weicht eine Prüfsumme ab oder liegt eine ungelistete Datei im Archiv, wird der Import abgelehnt. Wer eine Vorlage von Hand anpassen will, lädt statt des Archivs die reine categories.json hoch.