QR-Typen je Gruppe freigeben
Bisher galt die Freigabe eines Typs fuer die ganze Installation. Bei mehreren Gruppen ist das zu grob: Die Marketingabteilung braucht Social Media, die Werkstatt nur Website und PDF. Die Freigabe bekommt eine zweite Ebene. Die Grundeinstellung bleibt die Grundlage; je Gruppe laesst sich davon abweichen. Fehlt eine Abweichung, folgt die Gruppe der Grundeinstellung. Zur offenen Frage im Issue: Die globale Abschaltung gewinnt immer. Ein global abgeschalteter Typ laesst sich in keiner Gruppe einschalten — der Schalter steht dort sichtbar still und nennt den Grund. Andersherum waere "hier abgeschaltet" keine verlaessliche Aussage mehr. Eine eigene Tabelle statt eines zusammengesetzten Schluessels in QrTypeSetting: Der globale Fall braeuchte dort eine leere Gruppe, und PostgreSQL laesst in einem eindeutigen Index beliebig viele NULL nebeneinander zu — die Eindeutigkeit der globalen Zeile waere also gerade nicht gesichert. Die Startseite zeigt die Vereinigung ueber die eigenen Gruppen; beim Anlegen entscheidet die gewaehlte Gruppe, und die Route prueft das noch einmal. Refs #11
This commit is contained in:
@@ -589,6 +589,26 @@ Zwei Eigenschaften sind dabei zu unterscheiden:
|
||||
Nur umgesetzt **und** freigegeben heißt benutzbar. Freigegeben, aber nicht
|
||||
umgesetzt, erscheint als Kachel „Bald verfügbar“.
|
||||
|
||||
#### Freigabe je Gruppe
|
||||
|
||||
Die Auswahl **Freigabe für** über der Liste hat zwei Stufen:
|
||||
|
||||
- **Alle Gruppen (Grundeinstellung)** — gilt für die ganze Installation.
|
||||
- **Nur: \<Gruppe\>** — weicht für diese eine Gruppe davon ab. Die
|
||||
Marketingabteilung bekommt Social Media, die Werkstatt nur Website und PDF.
|
||||
|
||||
Fehlt eine Abweichung, folgt die Gruppe der Grundeinstellung. **Die globale
|
||||
Abschaltung gewinnt immer:** Ein Typ, der in der Grundeinstellung aus ist,
|
||||
lässt sich in keiner Gruppe einschalten — der Schalter steht dort sichtbar
|
||||
still und sagt warum. Andersherum wäre „hier abgeschaltet“ keine verlässliche
|
||||
Aussage mehr, und wer den Schalter umlegt, müsste alle Gruppen durchsehen, um
|
||||
zu wissen, was er getan hat.
|
||||
|
||||
Auf der Startseite sieht man die **Vereinigung** über die eigenen Gruppen. Wer
|
||||
in Werkstatt und Marketing ist, sieht beides. Welche Freigabe gilt, entscheidet
|
||||
sich erst beim Anlegen — dort zählt die gewählte Gruppe, und die Route prüft
|
||||
das noch einmal.
|
||||
|
||||
> **Bereits gespeicherte Codes bleiben unberührt.** Schaltet man einen Typ ab,
|
||||
> leiten vorhandene dynamische Codes weiter wie bisher und lassen sich weiter
|
||||
> bearbeiten. Ein gedruckter Code wird durch das Abschalten seines Typs also
|
||||
@@ -964,8 +984,8 @@ deutschen Meldung.
|
||||
| `DELETE` | `/api/codes/{id}` | Code löschen |
|
||||
| `GET` | `/api/codes/{id}/qr` | Bild des Codes (`?format=png\|svg&download=1`) |
|
||||
| `GET` | `/r/{slug}` | Weiterleitung, erhöht den Scan-Zähler |
|
||||
| `GET` | `/api/admin/types` | Zustand aller QR-Typen |
|
||||
| `PATCH` | `/api/admin/types` | Typ freigeben oder abschalten |
|
||||
| `GET` | `/api/admin/types` | Zustand aller QR-Typen (`?group={id}` je Gruppe) |
|
||||
| `PATCH` | `/api/admin/types` | Typ freigeben oder abschalten (`groupId` optional) |
|
||||
|
||||
Beispiel:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user