diff --git a/pyproject.toml b/pyproject.toml index 36f2884..48639e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-scheduling" -version = "0.1.21" +version = "0.1.22" description = "GovOPlaN meeting scheduling and Terminfindung module seed." readme = "README.md" requires-python = ">=3.12" license = { file = "LICENSE" } authors = [{ name = "GovOPlaN" }] dependencies = [ - "govoplan-core>=0.1.18", + "govoplan-core>=0.1.45", "govoplan-poll>=0.1.18", ] diff --git a/src/govoplan_scheduling/__init__.py b/src/govoplan_scheduling/__init__.py index c6f1da5..0981a90 100644 --- a/src/govoplan_scheduling/__init__.py +++ b/src/govoplan_scheduling/__init__.py @@ -2,4 +2,4 @@ __all__ = ["__version__"] -__version__ = "0.1.21" +__version__ = "0.1.22" diff --git a/src/govoplan_scheduling/backend/manifest.py b/src/govoplan_scheduling/backend/manifest.py index 84348cd..b371b06 100644 --- a/src/govoplan_scheduling/backend/manifest.py +++ b/src/govoplan_scheduling/backend/manifest.py @@ -51,7 +51,7 @@ from govoplan_scheduling.backend.dsar_provider import SCHEDULING_DSAR_CAPABILITY MODULE_ID = "scheduling" MODULE_NAME = "Scheduling" -MODULE_VERSION = "0.1.21" +MODULE_VERSION = "0.1.22" READ_SCOPE = "scheduling:schedule:read" WRITE_SCOPE = "scheduling:schedule:write" ADMIN_SCOPE = "scheduling:schedule:admin" @@ -111,6 +111,21 @@ ROLE_TEMPLATES = ( ) DOCUMENTATION = ( + DocumentationTopic( + id="scheduling.workspace-layout", + title="Scheduling workspace layout", + summary="Find workspace actions and read consistently arranged content.", + body="The workspace always keeps Reload and New scheduling request at the upper right, including empty, detail, and editor states. Reload sits immediately before New. Creation remains visible but disabled while saving or without creation/write permission; it never disappears inside the request-list card. An open editor keeps its own Save and Discard actions and the unsaved-change guard applies before switching requests. Administrators grant existing Scheduling permissions; this layout adds no permission or automatic invitation or Calendar action.", + layer="static", + documentation_types=("user", "admin"), + audience=("user", "module_admin", "operator"), + order=5, + translations={"de": { + "title": "Terminfindung: Aufbau des Arbeitsbereichs", + "summary": "Arbeitsbereichsaktionen finden und einheitlich angeordnete Inhalte lesen.", + "body": "Der Arbeitsbereich zeigt Neu laden und Neue Terminanfrage immer oben rechts, auch in leerem Zustand, Detailansicht und Bearbeitung. Neu laden steht unmittelbar vor Neu. Das Anlegen bleibt beim Speichern oder ohne Schreibrecht sichtbar, aber deaktiviert; es verschwindet nicht innerhalb der Anfragekartenleiste. Ein geöffneter Editor behält Speichern und Verwerfen; beim Wechsel schützt die Rückfrage ungespeicherte Änderungen. Administratoren vergeben bestehende Scheduling-Rechte; dieses Layout fügt weder Rechte noch automatische Einladungen oder Kalenderaktionen hinzu.", + }}, + ), DocumentationTopic( id="scheduling.module-boundary", title="Scheduling module boundary", diff --git a/webui/package.json b/webui/package.json index 2ba733c..fb3526b 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/scheduling-webui", - "version": "0.1.21", + "version": "0.1.22", "private": true, "type": "module", "main": "src/index.ts", @@ -18,7 +18,7 @@ "test:ui-structure": "node scripts/test-scheduling-page-structure.mjs" }, "peerDependencies": { - "@govoplan/core-webui": "^0.1.18", + "@govoplan/core-webui": "^0.1.45", "lucide-react": "^1.23.0", "react": ">=19.2.7 <20", "react-dom": ">=19.2.7 <20", diff --git a/webui/scripts/test-scheduling-page-structure.mjs b/webui/scripts/test-scheduling-page-structure.mjs index bc03483..69dc9ca 100644 --- a/webui/scripts/test-scheduling-page-structure.mjs +++ b/webui/scripts/test-scheduling-page-structure.mjs @@ -26,7 +26,12 @@ assert.match(page, /ActionBlockerHint,[\s\S]*DocumentationHelpLink,[\s\S]*StageR assert.match(page, /className="scheduling-workspace-layout"/); assert.match(page, /