From ac2f47bd7a5ce73080fd80a9c26a1f037ff85d34 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Sat, 22 Aug 2026 07:23:31 +0200 Subject: [PATCH] docs: complete public documentation baseline --- pyproject.toml | 2 +- src/govoplan_quick_access/__init__.py | 2 +- src/govoplan_quick_access/backend/manifest.py | 29 +++++++++++++++++-- tests/test_quick_access.py | 26 +++++++++++++++++ webui/package.json | 2 +- webui/src/module.ts | 2 +- 6 files changed, 57 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7c76361..6893708 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-quick-access" -version = "0.1.18" +version = "0.1.19" description = "Governed configurable Quick Access rail for GovOPlaN." readme = "README.md" requires-python = ">=3.12" diff --git a/src/govoplan_quick_access/__init__.py b/src/govoplan_quick_access/__init__.py index 2e6be55..12049a0 100644 --- a/src/govoplan_quick_access/__init__.py +++ b/src/govoplan_quick_access/__init__.py @@ -1,3 +1,3 @@ """GovOPlaN Quick Access module.""" -__version__ = "0.1.18" +__version__ = "0.1.19" diff --git a/src/govoplan_quick_access/backend/manifest.py b/src/govoplan_quick_access/backend/manifest.py index 2b7d6de..7db60b3 100644 --- a/src/govoplan_quick_access/backend/manifest.py +++ b/src/govoplan_quick_access/backend/manifest.py @@ -12,6 +12,7 @@ from govoplan_core.core.module_guards import ( ) from govoplan_core.core.modules import ( CapabilityDocumentation, + DocumentationCondition, DocumentationLink, DocumentationTopic, FrontendModule, @@ -34,7 +35,7 @@ from govoplan_quick_access.backend.dsar_provider import ( MODULE_ID = "quick_access" MODULE_NAME = "Quick Access" -MODULE_VERSION = "0.1.18" +MODULE_VERSION = "0.1.19" READ_SCOPE = "quick_access:profile:read" WRITE_SCOPE = "quick_access:profile:write" @@ -145,8 +146,20 @@ DOCUMENTATION = ( layer="configured", documentation_types=("admin", "user"), audience=("user", "tenant_admin", "operator", "auditor"), + translations={ + "de": { + "title": "Datenschutzanfragen für Schnellzugriff", + "summary": "Persönliche Leisteneinstellungen exportieren oder löschen, während institutionelle Schnellzugriffsrichtlinien erhalten bleiben.", + "body": ( + "Schnellzugriff trägt das Benutzerprofil bei, das dem genauen Konto im aktiven Mandanten gehört. Das Auskunftspaket enthält begrenzte Einstellungen zu Verfügbarkeit und Reihenfolge von Kategorien und Werkzeugen, folgt einem Werkzeug jedoch niemals in Mail, Postbox, Tasks, Files oder ein anderes Besitzermodul. " + "Mandantenrichtlinien werden nur mit minimierter Erstellungs- oder Änderungszuordnung aufgenommen, wenn das betroffene Konto die Handlung ausgeführt hat; ihr Einstellungsinhalt bleibt ausgeschlossen und die Zuordnung bleibt als institutioneller Nachweis erhalten. Systemweite Richtlinien liegen außerhalb mandantenbezogener Anfragen. " + "Eine Löschung entfernt nach Eigentums- und Revisionsprüfung ausschließlich das ausgewählte persönliche Profil. Die wirksame Leiste fällt anschließend auf die aktuellen Modul-, System- und Mandantenvorgaben einschließlich aller gesperrten oder erzwungenen Einträge zurück. Wiederholte Ausführung verändert nichts und keine Werkzeug- oder Fachdaten werden geändert." + ), + } + }, related_modules=("core", "access", "views"), metadata={ + "kind": "reference", "help_contexts": [ "quick_access.rail", "quick_access.settings.personal", @@ -187,6 +200,12 @@ DOCUMENTATION = ( layer="configured", documentation_types=("user",), audience=("user",), + conditions=( + DocumentationCondition( + required_modules=("quick_access", "access"), + required_scopes=(READ_SCOPE,), + ), + ), links=( DocumentationLink( label="Quick Access architecture", @@ -214,11 +233,17 @@ DOCUMENTATION = ( } }, metadata={ + "kind": "workflow", "help_contexts": [ "quick_access.rail", "quick_access.drawer", "quick_access.settings.personal", - ] + ], + "steps": [ + "Open a category on the right rail and choose an available compact tool.", + "Complete or explicitly cancel the bounded owner-module action.", + "Follow the owning-page link when the task exceeds the compact surface.", + ], }, ), DocumentationTopic( diff --git a/tests/test_quick_access.py b/tests/test_quick_access.py index caa4320..f8a0bdf 100644 --- a/tests/test_quick_access.py +++ b/tests/test_quick_access.py @@ -12,6 +12,7 @@ from govoplan_core.core.modules import ( ) from govoplan_core.core.registry import PlatformRegistry from govoplan_quick_access.backend.db.models import QuickAccessProfile +from govoplan_quick_access.backend.manifest import manifest from govoplan_quick_access.backend.service import build_catalogue, resolve_effective @@ -49,6 +50,31 @@ class QuickAccessTests(unittest.TestCase): def tearDown(self) -> None: self.engine.dispose() + def test_documentation_has_localized_workflow_and_reference_baselines(self) -> None: + topics = {topic.id: topic for topic in manifest.documentation} + self.assertTrue( + all( + all( + topic.translations.get("de", {}).get(field) + for field in ("title", "summary", "body") + ) + for topic in topics.values() + ) + ) + workflow = topics["quick-access.user"] + self.assertEqual("workflow", workflow.metadata["kind"]) + self.assertTrue(workflow.conditions) + self.assertTrue( + all( + condition.required_scopes or condition.any_scopes + for condition in workflow.conditions + ) + ) + self.assertEqual( + "reference", + topics["quick-access.data-subject-requests"].metadata["kind"], + ) + def test_catalogue_is_derived_from_manifest_tools(self) -> None: catalogue = build_catalogue(registry_with_tools()) diff --git a/webui/package.json b/webui/package.json index 30bf153..07cefbc 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/quick-access-webui", - "version": "0.1.18", + "version": "0.1.19", "private": true, "type": "module", "main": "src/index.ts", diff --git a/webui/src/module.ts b/webui/src/module.ts index 6333f7a..a22d807 100644 --- a/webui/src/module.ts +++ b/webui/src/module.ts @@ -77,7 +77,7 @@ const adminSections: AdminSectionsUiCapability = { export const quickAccessModule: PlatformWebModule = { id: "quick_access", label: "i18n:govoplan-quick-access.quick_access", - version: "0.1.18", + version: "0.1.19", dependencies: ["access"], optionalDependencies: ["views", "policy"], translations: generatedTranslations,