From c8431004b73ac30c5834e70957984333f8f30af7 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Sat, 22 Aug 2026 20:25:32 +0200 Subject: [PATCH] docs(services): complete German public reference --- pyproject.toml | 4 +-- src/govoplan_services/__init__.py | 2 +- src/govoplan_services/backend/manifest.py | 41 ++++++++++++++++++++++- tests/test_documentation.py | 27 +++++++++++++++ 4 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 tests/test_documentation.py diff --git a/pyproject.toml b/pyproject.toml index 5b9f1d0..079e161 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-services" -version = "0.1.18" +version = "0.1.19" description = "Versioned institutional service definitions for GovOPlaN." readme = "README.md" requires-python = ">=3.12" authors = [{ name = "GovOPlaN" }] -dependencies = ["govoplan-core>=0.1.18"] +dependencies = ["govoplan-core>=0.1.37"] [tool.setuptools.packages.find] where = ["src"] diff --git a/src/govoplan_services/__init__.py b/src/govoplan_services/__init__.py index 554ae3a..8a9b56b 100644 --- a/src/govoplan_services/__init__.py +++ b/src/govoplan_services/__init__.py @@ -1,3 +1,3 @@ """GovOPlaN Services module.""" -__version__ = "0.1.18" +__version__ = "0.1.19" diff --git a/src/govoplan_services/backend/manifest.py b/src/govoplan_services/backend/manifest.py index ec1f61e..1c291db 100644 --- a/src/govoplan_services/backend/manifest.py +++ b/src/govoplan_services/backend/manifest.py @@ -30,7 +30,7 @@ from govoplan_services.backend.service import RegistryServiceAvailabilityEvaluat MODULE_ID = "services" MODULE_NAME = "Services" -MODULE_VERSION = "0.1.18" +MODULE_VERSION = "0.1.19" READ_SCOPE = "services:definition:read" WRITE_SCOPE = "services:definition:write" ADMIN_SCOPE = "services:definition:admin" @@ -138,6 +138,27 @@ manifest = ModuleManifest( kind="repository", ), ), + translations={ + "de": { + "title": "Datenschutzanfragen zum Leistungskatalog", + "summary": ( + "Die Zuordnung von Konfigurationsänderungen exportieren und " + "Leistungsinteraktionen beim jeweils zuständigen Laufzeitmodul belassen." + ), + "body": ( + "Services exportiert im exakten Mandanten die Zuordnung versionierter " + "Definitionen zu dem angefragten Konto, der Identität oder Mitgliedschaft. " + "Optionale Definitions- und Revisionsverweise schränken das Ergebnis ein und " + "müssen diese Akteurszuordnung bestätigen. Definitionsinhalte, Suchtexte des " + "Katalogs und fremde Autorinnen oder Autoren bleiben ausgeschlossen. Die " + "Zuordnung ist unveränderlicher institutioneller Nachweis und erhält nur " + "nicht ausführbare Aufbewahrungsmaßnahmen. Services speichert keine dauerhaften " + "Interaktionen oder Starts. Portal bewahrt keinen Interaktionsdatensatz; Cases, " + "Forms Runtime oder Workflow Engine besitzen die durch die Leistungsbindung " + "ausgelöste konkrete Wirkung und stellen deren Datenschutzabdeckung bereit." + ), + } + }, ), DocumentationTopic( id="services.catalogue", @@ -148,6 +169,24 @@ manifest = ModuleManifest( documentation_types=("admin", "user"), audience=("user", "operator", "module_admin", "product_owner"), links=(DocumentationLink(label="Services domain and recovery", href="govoplan-services/docs/SERVICES_DOMAIN.md", kind="repository"),), + metadata={"kind": "reference"}, + translations={ + "de": { + "title": "Institutioneller Leistungskatalog", + "summary": ( + "Versionierte Leistungsversprechen unabhängig von Darstellung " + "und Fallbearbeitung verwalten." + ), + "body": ( + "Definitionen bewahren Zielgruppen, Voraussetzungen, Nachweise, " + "Verantwortung, Bindungen, Veröffentlichung und erklärbare " + "Verfügbarkeitsanforderungen. Katalog und nicht versionierte Detailansichten " + "folgen der in der Titelleiste gewählten Gültigkeits- und Aufzeichnungszeit. " + "Portal und Cases verwenden exakte Revisionen über Fähigkeiten; die aktuelle " + "Berechtigungsprüfung gilt unverändert." + ), + } + }, ), ), architecture=declared_module_architecture( diff --git a/tests/test_documentation.py b/tests/test_documentation.py new file mode 100644 index 0000000..38d0522 --- /dev/null +++ b/tests/test_documentation.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +import unittest + +from govoplan_services.backend.manifest import manifest + + +class ServicesDocumentationTests(unittest.TestCase): + def test_public_topics_have_complete_german_reference_content(self) -> None: + self.assertEqual(2, len(manifest.documentation)) + for topic in manifest.documentation: + translation = topic.translations.get("de", {}) + self.assertTrue( + all(translation.get(key) for key in ("title", "summary", "body")) + ) + + def test_catalogue_topic_is_the_field_and_consequence_reference(self) -> None: + topic = next( + item + for item in manifest.documentation + if item.id == "services.catalogue" + ) + self.assertEqual("reference", topic.metadata.get("kind")) + + +if __name__ == "__main__": + unittest.main()