From fa0bdde839740c550108b6f70b8f7254164191e5 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Sat, 22 Aug 2026 08:27:57 +0200 Subject: [PATCH] docs: localize workflow guidance --- pyproject.toml | 2 +- src/govoplan_workflow/__init__.py | 2 +- src/govoplan_workflow/backend/manifest.py | 37 ++++++++++++++++++++++- tests/test_manifest.py | 8 +++++ webui/package.json | 2 +- 5 files changed, 47 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a691779..da3c95a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-workflow" -version = "0.1.20" +version = "0.1.21" description = "Optional visual authoring and inspection workspace for GovOPlaN Workflow Engine." readme = "README.md" requires-python = ">=3.12" diff --git a/src/govoplan_workflow/__init__.py b/src/govoplan_workflow/__init__.py index 944d28f..4f35d13 100644 --- a/src/govoplan_workflow/__init__.py +++ b/src/govoplan_workflow/__init__.py @@ -1,3 +1,3 @@ """Optional GovOPlaN Workflow editor and compatibility package.""" -__version__ = "0.1.18" +__version__ = "0.1.21" diff --git a/src/govoplan_workflow/backend/manifest.py b/src/govoplan_workflow/backend/manifest.py index 788f16e..8791cd4 100644 --- a/src/govoplan_workflow/backend/manifest.py +++ b/src/govoplan_workflow/backend/manifest.py @@ -35,7 +35,7 @@ from govoplan_workflow_engine.backend.manifest import ( MODULE_ID = "workflow" MODULE_NAME = "Workflow" -MODULE_VERSION = "0.1.20" +MODULE_VERSION = "0.1.21" SEMANTIC_SUBJECT_CAPABILITY = semantic_documentation_subject_capability(MODULE_ID) @@ -174,6 +174,18 @@ manifest = ModuleManifest( any_scopes=(INSTANCE_READ_SCOPE, ADMIN_SCOPE), ), ), + translations={ + "de": { + "title": "Externe Arbeitsübergaben prüfen und zu ihnen zurückkehren", + "summary": "Der genau verknüpften Arbeit im Zielmodul folgen, während Workflow seine dauerhafte Position und unveränderliche Referenz beibehält.", + "body": ( + "Der Läufe-Dialog zeigt den aktuellen Zustand der externen Übergabe, die genaue Revisionsreferenz, die sichere Aktion zur verknüpften Arbeit, den Zeitablauf und die unveränderliche Workflow-Nachweisspur. " + "Das Verlassen des Dialogs oder der verknüpften Campaign-Seite schließt den Schritt nicht ab. Deklarierte Campaign-Ereignisse steuern Annahme, Neuzuweisung, Abschluss, Ablehnung und Abbruch ohne Browser-Abfragen. " + "Eine konfigurierte fokussierte View grenzt die verfügbaren Oberflächen ein, solange der Schritt aktiv ist. Fehlt Views, bleibt die verknüpfte Campaign-Aktion verfügbar und der Dialog erläutert die reduzierte Darstellung. " + "Auch fehlende optionale Module Tasks oder Notifications werden angezeigt, ohne das Ergebnis der Übergabe zu verändern." + ), + } + }, metadata={ "kind": "workflow", "help_contexts": [ @@ -227,6 +239,19 @@ manifest = ModuleManifest( kind="repository", ), ), + translations={ + "de": { + "title": "Bedeutung konfigurierter Workflows und Schritte dokumentieren", + "summary": "Mandanteneigene semantische Hinweise einer berechtigten Workflow-Definition oder einem stabilen Schritt zuordnen, ohne die Ausführung zu verändern.", + "body": ( + "Wenn Docs installiert ist, stellt Workflow dokumentationssichere Subjekte für jede Definition bereit, die der aktuelle Akteur sehen darf, sowie für jeden Schritt ihrer aktuellen unveränderlichen Revision. " + "Die Schrittidentität bleibt bei Änderungen von Bezeichnung und Position auf der Zeichenfläche erhalten. Wird ein Schritt entfernt und später mit derselben Graph-ID neu angelegt, entsteht eine neue Abstammung; frühere Dokumentation bleibt ausdrücklich verwaist. " + "Relevante Änderungen an Schritttyp, Bezeichnung, Hierarchie, sicherer Konfiguration oder der Semantik verbundener Flüsse ändern den Prüffingerabdruck; reine Layoutverschiebungen tun dies nicht. " + "Semantische Texte können Zweck, Nicht-Zweck, Ein- und Austrittsbedingungen, Übergaben, Ausnahmen, Verantwortung, Betreuung und Beispiele erläutern, aber weder Validierung, Aktivierung, Richtlinien noch die Ausführung durch Workflow Engine verändern. " + "Workflow prüft bei Ermittlung und direkter Auflösung erneut Mandantengrenze und aktuelle Governance-Entscheidung je Definition. Fehlt Docs, bleiben Bearbeitung und statische Hilfe verfügbar." + ), + } + }, metadata={ "kind": "reference", "help_contexts": ["workflow.semantic-documentation"], @@ -258,6 +283,16 @@ manifest = ModuleManifest( kind="repository", ), ), + translations={ + "de": { + "title": "Arbeitsbereich für Workflow-Bearbeitung und -Prüfung", + "summary": "Optionale Erstellung, Validierung, Revisionsprüfung und Betriebssteuerung für Workflow Engine.", + "body": ( + "Workflow ergänzt den visuellen BPMN- und nativen Graph-Editor, den Definitionskatalog, den Vergleich unveränderlicher Revisionen, Aktivierungssteuerung, Instanzprüfung und gesteuerte Eingriffe zum Überschreiben oder Zurücksetzen. " + "Definitionen und Instanzen bleiben Eigentum des ohne eigene Bedienoberfläche betriebenen Moduls Workflow Engine und werden dort ausgeführt." + ), + } + }, order=76, ), ), diff --git a/tests/test_manifest.py b/tests/test_manifest.py index 1b0b8b6..f0e0a99 100644 --- a/tests/test_manifest.py +++ b/tests/test_manifest.py @@ -11,6 +11,7 @@ class WorkflowManifestTests(unittest.TestCase): manifest = get_manifest() self.assertEqual("workflow", manifest.id) + self.assertEqual("0.1.21", manifest.version) self.assertEqual(("workflow_engine",), manifest.dependencies) self.assertEqual( {"workflow.definition_graph", "workflow.definition_catalogue", "workflow.bpmn_interchange"}, @@ -38,6 +39,13 @@ class WorkflowManifestTests(unittest.TestCase): manifest.frontend.package_name if manifest.frontend else None, ) + for topic in manifest.documentation: + german = topic.translations.get("de", {}) + self.assertTrue( + all(german.get(field) for field in ("title", "summary", "body")), + topic.id, + ) + def test_editor_exposes_semantic_help_without_replacing_static_help(self) -> None: root = Path(__file__).parents[1] page = (root / "webui/src/features/workflow/WorkflowPage.tsx").read_text() diff --git a/webui/package.json b/webui/package.json index 8dc00f1..3a8f90c 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/workflow-webui", - "version": "0.1.20", + "version": "0.1.21", "private": true, "type": "module", "main": "src/index.ts",