diff --git a/src/govoplan_tasks/backend/manifest.py b/src/govoplan_tasks/backend/manifest.py
index 2fc5df4..67b9786 100644
--- a/src/govoplan_tasks/backend/manifest.py
+++ b/src/govoplan_tasks/backend/manifest.py
@@ -140,7 +140,9 @@ DOCUMENTATION = (
id="tasks.workspace-layout",
title="Tasks workspace actions",
summary="Find collection-wide commands in their consistent workspace position.",
- body="Reload and Create task use the persistent full-width workspace header at the upper right; Reload sits immediately before creation. Selecting a record, changing filters, or opening an editor does not move these collection-wide commands into the left pane. Search and status filters stay in the task list; completion, ownership, and other task-specific actions remain with the selected task. Existing permissions, disabled-state rules, and unsaved-change guards still apply. Administrators configure authority through the existing permission system; no new permission or automatic operation is introduced.",
+ body="Documentation books sit immediately beside the visible heading or contextual label for "
+ "Tasks, not among operational action buttons. Field help remains beside its label. "
+ "Reload and Create task use the persistent full-width workspace header at the upper right; Reload sits immediately before creation. Selecting a record, changing filters, or opening an editor does not move these collection-wide commands into the left pane. Search and status filters stay in the task list; completion, ownership, and other task-specific actions remain with the selected task. Existing permissions, disabled-state rules, and unsaved-change guards still apply. Administrators configure authority through the existing permission system; no new permission or automatic operation is introduced.",
layer="static",
documentation_types=("user", "admin"),
audience=("user", "module_admin", "operator"),
@@ -148,7 +150,10 @@ DOCUMENTATION = (
translations={"de": {
"title": "Aufgaben: Aktionen im Arbeitsbereich",
"summary": "Sammlungsweite Aktionen an ihrer einheitlichen Position im Arbeitsbereich finden.",
- "body": "Neu laden und Aufgabe anlegen stehen oben rechts in der dauerhaft sichtbaren, arbeitsbereichsweiten Leiste; Neu laden steht unmittelbar vor dem Anlegen. Auswahl, Filterwechsel und Bearbeitung verschieben diese sammlungsweiten Aktionen nicht in den linken Bereich. Suche und Statusfilter bleiben in der Aufgabenliste; Abschluss, Zuständigkeit und weitere aufgabenspezifische Aktionen bleiben bei der ausgewählten Aufgabe. Bestehende Berechtigungen, Deaktivierungsregeln und der Schutz ungespeicherter Änderungen gelten weiterhin. Administratoren konfigurieren Rechte im bestehenden Berechtigungssystem; es entstehen weder neue Rechte noch automatische Vorgänge.",
+ "body": "Dokumentationsbücher stehen unmittelbar neben der sichtbaren Überschrift oder "
+ "Kontextbezeichnung für Aufgaben, nicht zwischen ausführbaren Aktionsschaltflächen. Feldhilfe "
+ "bleibt neben der Feldbezeichnung. "
+ "Neu laden und Aufgabe anlegen stehen oben rechts in der dauerhaft sichtbaren, arbeitsbereichsweiten Leiste; Neu laden steht unmittelbar vor dem Anlegen. Auswahl, Filterwechsel und Bearbeitung verschieben diese sammlungsweiten Aktionen nicht in den linken Bereich. Suche und Statusfilter bleiben in der Aufgabenliste; Abschluss, Zuständigkeit und weitere aufgabenspezifische Aktionen bleiben bei der ausgewählten Aufgabe. Bestehende Berechtigungen, Deaktivierungsregeln und der Schutz ungespeicherter Änderungen gelten weiterhin. Administratoren konfigurieren Rechte im bestehenden Berechtigungssystem; es entstehen weder neue Rechte noch automatische Vorgänge.",
}},
),
DocumentationTopic(
diff --git a/tests/test_webui_contract.py b/tests/test_webui_contract.py
index c28588f..7ca8c34 100644
--- a/tests/test_webui_contract.py
+++ b/tests/test_webui_contract.py
@@ -16,7 +16,12 @@ class TasksQuickAccessContractTests(unittest.TestCase):
topics = get_manifest().documentation
kinds = {topic.metadata.get("kind", "system") for topic in topics}
- self.assertEqual(3, len(topics))
+ self.assertEqual({
+ "tasks.workspace-layout",
+ "tasks.data-subject-requests",
+ "tasks.quick-access-and-product-area",
+ "tasks.work-inbox",
+ }, {topic.id for topic in topics})
self.assertTrue({"workflow", "reference"}.issubset(kinds))
for topic in topics:
translation = topic.translations["de"]
diff --git a/webui/src/features/tasks/TasksPage.tsx b/webui/src/features/tasks/TasksPage.tsx
index 5f61cc6..9a5842f 100644
--- a/webui/src/features/tasks/TasksPage.tsx
+++ b/webui/src/features/tasks/TasksPage.tsx
@@ -203,8 +203,8 @@ export default function TasksPage({ settings, auth }: { settings: ApiSettings; a
variant="detail"
className="tasks-topbar"
data-help-context-id="tasks.page.detail"
- contextActions={{selected?.title ?? "i18n:govoplan-tasks.work_details"}}
- helpAction={}
+ title={{selected?.title ?? "i18n:govoplan-tasks.work_details"}}
+ titleHelp={}
primaryActions={selected?.provider_id === "tasks.explicit" && canWrite ? (
action === "defer" ? setDeferOpen(true) : void runAction(action)} />
) : undefined}