Seitenleiste: Eintraege ausblendbar (Backend)
Zwei Ebenen in einer Tabelle, nach dem Vorbild von DashboardLayout: user_id NULL ist die Vorgabe des Administrators, eine Zeile mit user_id die zusaetzliche Auswahl eines Kontos. Beide Listen gelten zusammen - wer etwas versteckt, versteckt es zusaetzlich; einblenden, was der Administrator ausgeblendet hat, kann niemand. Das erspart einen dritten Zustand je Eintrag. Als Schluessel dient der Routenpfad; der ist ohnehin eindeutig, eine zweite Benennung waere nur eine weitere Stelle zum Auseinanderlaufen. Drei Routen: lesen (Vorgabe, eigene Auswahl und die fertige Vereinigung in einem Zug), eigene Auswahl setzen, Vorgabe setzen (nur Admin). Die Eindeutigkeit laeuft ueber einen Index auf coalesce(user_id, -1). Ein schlichtes UNIQUE(user_id) haette zwei Vorgabezeilen zugelassen, weil NULL in SQL nie gleich NULL ist - das war im Entwurf noch falsch. Versteckt wird nur der Eintrag, nicht die Seite: Lesezeichen, Dashboard-Karten und Lagerort-QR sollen weiter funktionieren. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8f5d679d9d
commit
be267e70a5
@@ -1154,6 +1154,24 @@ class ItemOut(BaseModel):
|
||||
gehoert_zu: ItemKurz | None = None
|
||||
|
||||
|
||||
# ---- Seitenleiste ----
|
||||
class NavigationOut(BaseModel):
|
||||
"""Was die Oberflaechen brauchen, in einem Zug.
|
||||
|
||||
``versteckt`` ist die fertige Vereinigung aus Vorgabe und eigener Auswahl –
|
||||
die Leiste rechnet damit nichts mehr selbst. ``vorgabe`` und ``eigen``
|
||||
stehen daneben, weil die Einstellungsseite bzw. die Kontoseite genau ihre
|
||||
eigene Ebene zum Bearbeiten brauchen.
|
||||
"""
|
||||
vorgabe: list[str] = []
|
||||
eigen: list[str] = []
|
||||
versteckt: list[str] = []
|
||||
|
||||
|
||||
class NavigationSetzen(BaseModel):
|
||||
versteckt: list[str] = []
|
||||
|
||||
|
||||
# ---- Etiketten-Vorlagen ----
|
||||
class SpalteOut(BaseModel):
|
||||
"""Eine waehlbare Spalte – fest oder ein eigenes Feld."""
|
||||
|
||||
Reference in New Issue
Block a user