feat(17-01): tree reorder page and singleton admin controllers

- cabana: config_reorder.yaml (title, nameFrom, modelClass, parentColumn,
  sortColumn, maxDepth, partition) with fail-loud boot checks and the
  built-in reorder toolbar button; list schema carries reorder
- GET/POST {controller}/reorder: scoped set (ListExtendQuery plus the
  partition) locked FOR UPDATE, 409 reorder_stale on any set difference,
  422 for duplicates, foreign parents, cycles and maxDepth, both columns
  written without model hooks
- pact.AdminSingleton: GET {controller}/singleton (first or create, form
  scope checked), form schema singleton, list/create/bulk/delete 404,
  no config_list.yaml needed
- swag, inventories, token classes, CSRF walk, conformance cases, backend
  lang reorder.stale and load_failed, reorder and singleton smoke tests, docs
This commit is contained in:
2026-10-12 15:35:43 +02:00
parent 46835fd064
commit 23f33c3911
31 changed files with 1905 additions and 15 deletions

View File

@@ -338,3 +338,6 @@ richeditor:
repeater:
max_items: Remove items until there are at most :max.
min_items: Add items until there are at least :min.
reorder:
stale: The records changed in the meantime. The list has been reloaded.
load_failed: The records could not be loaded. Refresh the page to try again.

View File

@@ -366,3 +366,6 @@ richeditor:
repeater:
max_items: Usuń pozycje, aby zostało ich najwyżej :max.
min_items: Dodaj pozycje, aby było ich co najmniej :min.
reorder:
stale: Rekordy zmieniły się w międzyczasie. Lista została wczytana ponownie.
load_failed: Nie udało się wczytać rekordów. Odśwież stronę, aby spróbować ponownie.