8.3 KiB
Trustee: Aufraeumen Positionen / Dokumente Top-Level-Seiten
Beschreibung und Kontext
Mit 2026-04-trustee-data-tables-page.md (status: done) sind alle 13 Trustee-Tabellen in der konsolidierten Seite Daten-Tabellen (/mandates/{m}/trustee/{i}/data-tables[?tab=<key>]) verfuegbar. Die alten Top-Level-Seiten Positionen und Dokumente sind dort als Tabs eingebettet (TrusteePositionsView, TrusteeDocumentsView werden im neuen TrusteeDataTablesView direkt importiert und unter Tabs gemountet).
Top-Level-Routen / Mappings fuer diese beiden Seiten wurden in der Vorgaenger-Iteration entfernt:
frontend_nyla/src/pages/FeatureView.tsx: kein direktes'positions' / 'documents'-Mapping mehr (VIEW_COMPONENTS.trustee).frontend_nyla/src/App.tsx: keineRoute path="positions"/path="documents"mehr.gateway/modules/features/trustee/mainTrustee.py:ui.feature.trustee.positionsundui.feature.trustee.documentsentfernt; einziger neuer UI-Eintrag istui.feature.trustee.data-tables.
Was noch lebt: die beiden Standalone-Komponenten als Datei + Index-Export. Sie werden ausschliesslich vom TrusteeDataTablesView als Tab-Body referenziert.
Diese Iteration raeumt die noch existierenden, aber nicht mehr als eigenstaendige Seiten verwendeten Reste auf -- ohne Funktionalitaet zu verlieren.
Fokus und kritische Details
- Die Spezialdarstellungen (Beleg-Download in Positionen-Tabelle, Dokument-Download in Dokumente-Tabelle, Inline-Sync-Status) leben in
TrusteePositionsView/TrusteeDocumentsView. Sie sind weiterhin als Tab-Body im neuenTrusteeDataTablesViewproduktiv -- darf nicht versehentlich entfernt werden. - Falls ein simpler
TrusteeDataTab(generischer Wrapper) die Spezialfeatures nicht abdeckt, bleiben die beiden Komponenten erhalten und werden nur in derindex.tsund im Code-Layout sauber als "Tab-Body, nicht Top-Level-View" gekennzeichnet. position-documents(Zuordnungen) bleibt als eigene Top-Level-View unangetastet (anderer Use-Case: Position-Document-Zuordnung).FEATURE_REGISTRY.trustee.viewsinfrontend_nyla/src/types/mandate.tsist laut Header (TODO: Remove after all references are migrated to use backend navigation.) ohnehin geplant zu entsorgen -- in dieser Iteration nur sicherstellen, dass keine'positions'/'documents'-Eintraege mehr drin sind.
Ziel und Nicht-Ziele
- Ziel: Code-Klarheit -- Standalone-Files
TrusteePositionsView.tsx/TrusteeDocumentsView.tsxwerden entweder (a) im OrdnerdataTables/als Tab-Body umbenannt (TrusteePositionsTab.tsx,TrusteeDocumentsTab.tsx) oder (b) bleiben dort, aber bekommen einen Header-Kommentar "Mounted only as a tab insideTrusteeDataTablesView". - Ziel:
index.tsexportiert die Komponenten nur noch wenn sie tatsaechlich extern referenziert werden; sonst entfernen. - Ziel: Stichprobe pruefen, dass keine externe Quick-Action / Notification / Mail-Template / Workflow-Definition mehr auf
/trustee/{instanceId}/positionsoder/documentsverlinkt. - Ziel:
mainTrustee.py-- letzter Sweep: keine Restrolle/Permission referenziertui.feature.trustee.positions/.documents. - Ziel:
pageRegistry.tsxund ggf.MandateNavigation-Defaults /quickActions(Backend) -- alle Verweise raus. - Explizit NICHT: Loeschen der
TrusteePositionsView/TrusteeDocumentsViewLogik. Sie bleiben funktional erhalten -- nur die "Top-Level-Page"-Doppelung wird beseitigt. - Explizit NICHT: Aenderungen am Backend-Datenmodell oder den REST-Endpoints von Position/Document.
Betroffene Module
- Frontend:
frontend_nyla/src/pages/views/trustee/TrusteePositionsView.tsx,TrusteeDocumentsView.tsx: Header-Kommentar / Renaming.frontend_nyla/src/pages/views/trustee/index.ts: Exporte pruefen (nur was extern noch noetig ist, bleibt).frontend_nyla/src/pages/FeatureView.tsx: Sicherstellen, dassVIEW_COMPONENTS.trusteekeine'positions'/'documents'-Eintraege hat.frontend_nyla/src/App.tsx: Suche nach Restrouten mitpositions/documents.frontend_nyla/src/types/mandate.ts:FEATURE_REGISTRY.trustee.views(legacy) -- Eintraege sauber halten, ggf. ganzen Block deprecaten.frontend_nyla/src/components/Navigation/*: Pruefen, ob noch Icons / Default-Routes aufpositions/documentszeigen.
- Gateway:
gateway/modules/features/trustee/mainTrustee.py: SweepUI_OBJECTS,TEMPLATE_ROLES,QUICK_ACTIONS-- keineui.feature.trustee.positions/.documentsmehr.gateway/modules/features/trustee/routeFeatureTrustee.py: kein Code-Change geplant (REST-Endpunkte fuer Position/Document bleiben).
- Wiki:
wiki/b-reference/frontend-nyla/architecture.mdundgateway/architecture.md: pruefen, ob in dentrustee-Mentions nochpositions/documentsals Top-Level-Pages stehen.
- DB-Migration: nein.
Entscheidungen
| Datum | Entscheidung | Begruendung |
|---|---|---|
| 2026-04-21 | TrusteePositionsView / TrusteeDocumentsView werden NICHT geloescht |
Sie liefern weiterhin die Spezialdarstellung im neuen TrusteeDataTablesView-Tab. |
| 2026-04-21 | Keine sofortige Umbennenung in *Tab.tsx |
Reduziert Diff-Risiko fuer eine reine Aufraeum-Iteration; Header-Kommentar reicht. |
Umsetzungs-Checkliste
Sweep / Cleanup
TrusteePositionsView.tsxHeader-KommentarMounted only as a tab inside TrusteeDataTablesViewergaenzen.TrusteeDocumentsView.tsxanalog.frontend_nyla/src/pages/views/trustee/index.ts: Exporte pruefen und ueberfluessige entfernen.grep -r "ui.feature.trustee.positions\|ui.feature.trustee.documents"durch gateway + frontend laufen lassen -- alle Treffer adressieren.grep -r "/trustee/.*positions\|/trustee/.*documents"(Mail-Templates, Workflows, QuickActions) -- ggf. aufdata-tables?tab=positionsumbiegen.mainTrustee.py.QUICK_ACTIONS: pruefen, ob "Neuer Beleg" / "Neue Position"-Quick-Action aufdata-tables?tab=positions(odertab=documents) zeigen sollte statt ggf. veraltete Routen.- Navigation-Defaults pruefen: nach Login / nach Feature-Aktivierung sollte die Standard-Trustee-Page weiterhin
dashboardsein, nichtpositions/documents.
Verifikation
- Manueller Smoke-Test: Trustee-Instanz oeffnen ->
Daten-Tabellen-> TabPositionen-> Edit + Beleg-Download funktionieren wie vorher. - Manueller Smoke-Test: Trustee-Instanz oeffnen ->
Daten-Tabellen-> TabDokumente-> Edit + Download funktionieren wie vorher. npm run buildim Frontend -- kein TypeScript-Fehler durch verschobene/entfernte Exporte.- Gateway-Tests
gateway/tests/test_routeFeatureTrustee_*laufen gruen.
Akzeptanzkriterien
| # | Kriterium (Given-When-Then) | Prio |
|---|---|---|
| 1 | Given die konsolidierte Seite Daten-Tabellen, When der User Tab Positionen oeffnet, Then funktioniert Edit / Delete / Beleg-Download / Sync wie in der alten Top-Level-Seite. |
must |
| 2 | Given Code-Suche ui.feature.trustee.positions und ui.feature.trustee.documents, When grep durchlaeuft, Then liefert sie keinen Treffer (ausser Migrations-/Doku-Notizen). |
must |
| 3 | Given eine Quick-Action / ein Mail-Template, When es auf eine Trustee-Tabelle verlinkt, Then zeigt der Link auf /data-tables?tab=positions (oder tab=documents), nicht auf eine Top-Level-Route. |
should |
| 4 | Given das Frontend-Build, When npm run build laeuft, Then schlaegt nichts wegen entfernter Exporte fehl. |
must |
Testplan
| ID | AC | Art | Automatisiert | Repo-Pfad | Status |
|---|---|---|---|---|---|
| T1 | 1 | manual UI | nein | -- | pending |
| T2 | 2 | grep | manuell | gateway/, frontend_nyla/ | pending |
| T3 | 3 | grep + manual | manuell | mainTrustee.py, mail-templates | pending |
| T4 | 4 | build | ja | frontend_nyla npm run build |
pending |
Links
- Vorgaenger-Plan:
wiki/c-work/4-done/2026-04-trustee-data-tables-page.md - Konsolidierte Seite:
frontend_nyla/src/pages/views/trustee/TrusteeDataTablesView.tsx - Eingebettete Tab-Bodies:
frontend_nyla/src/pages/views/trustee/TrusteePositionsView.tsx,TrusteeDocumentsView.tsx
Abschluss
- Dieses Dokument ->
c-work/2-build/(bei Umsetzungsbeginn) ->c-work/3-validate/->c-work/4-done/.