docs(mandates): complete German public reference

This commit is contained in:
2026-08-22 20:25:21 +02:00
parent 19e8cd350a
commit 7540a314b7
4 changed files with 83 additions and 4 deletions
+2 -2
View File
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-mandates" name = "govoplan-mandates"
version = "0.1.18" version = "0.1.19"
description = "Effective institutional mandate, jurisdiction, and authority lifecycle for GovOPlaN." description = "Effective institutional mandate, jurisdiction, and authority lifecycle for GovOPlaN."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
authors = [{ name = "GovOPlaN" }] authors = [{ name = "GovOPlaN" }]
dependencies = ["govoplan-core>=0.1.18"] dependencies = ["govoplan-core>=0.1.37"]
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
where = ["src"] where = ["src"]
+1 -1
View File
@@ -1,3 +1,3 @@
"""GovOPlaN institutional mandates module.""" """GovOPlaN institutional mandates module."""
__version__ = "0.1.18" __version__ = "0.1.19"
+51 -1
View File
@@ -30,7 +30,7 @@ from govoplan_mandates.backend.service import SqlMandateResolver
MODULE_ID = "mandates" MODULE_ID = "mandates"
MODULE_NAME = "Mandates" MODULE_NAME = "Mandates"
MODULE_VERSION = "0.1.18" MODULE_VERSION = "0.1.19"
READ_SCOPE = "mandates:definition:read" READ_SCOPE = "mandates:definition:read"
WRITE_SCOPE = "mandates:definition:write" WRITE_SCOPE = "mandates:definition:write"
ADMIN_SCOPE = "mandates:definition:admin" ADMIN_SCOPE = "mandates:definition:admin"
@@ -167,6 +167,38 @@ manifest = ModuleManifest(
"exclude_mandate_payload": "Does not infer or export subjects from authority definitions.", "exclude_mandate_payload": "Does not infer or export subjects from authority definitions.",
}, },
}, },
translations={
"de": {
"title": "Datenschutzanfragen zu Mandaten",
"summary": (
"Aktivitäten von Mandatsautorinnen und -autoren exportieren, ohne "
"Personen aus beliebigen Zuständigkeitsinhalten abzuleiten."
),
"body": (
"Mandates korreliert ausschließlich eine exakte mandantengebundene Kontokennung "
"und kann eine bereits verifizierte Suche auf ein Mandat oder eine Revision "
"eingrenzen. Ausgegeben werden minimierte Zuordnungsdaten mit Revision, Status, "
"Gültigkeits- und Aufzeichnungszeit. Der frei strukturierte Mandatsinhalt, "
"Rechtsgrundlagen, Organisations- und Funktionsverweise, Zuständigkeitskriterien, "
"Änderungsgründe und Konfliktverweise werden weder zur Identitätssuche verwendet "
"noch exportiert. Die Mandatshistorie belegt institutionelle Zuständigkeit und "
"bleibt unveränderlicher Nachweis, statt automatisch gelöscht zu werden."
),
}
},
structured_translation_version="1",
structured_translations={
"de": {
"consequence_classes": {
"export_mandate_attribution": (
"Gibt minimierte Aktivitäten aus unveränderlichen Revisionen zurück."
),
"exclude_mandate_payload": (
"Leitet keine betroffenen Personen aus Zuständigkeitsdefinitionen ab und exportiert diese Inhalte nicht."
),
}
}
},
), ),
DocumentationTopic( DocumentationTopic(
id="mandates.definition-and-resolution", id="mandates.definition-and-resolution",
@@ -187,6 +219,24 @@ manifest = ModuleManifest(
kind="repository", kind="repository",
), ),
), ),
metadata={"kind": "reference"},
translations={
"de": {
"title": "Institutionelle Mandate",
"summary": (
"Zuständigkeit, Hoheitsbereich, Rechtsgrundlage und Nachweise "
"definieren und wirksam auflösen."
),
"body": (
"Mandates speichert unveränderliche Revisionen und ermittelt die eine wirksame "
"Zuständigkeit für eine Aufgabe. Bei widersprüchlicher oder fehlender Zuständigkeit "
"wird sicher abgebrochen. Folgeprozesse bewahren die exakte Revision und ihren "
"Nachweis. Katalogansichten folgen der in der Titelleiste gewählten Gültigkeits- und "
"Aufzeichnungszeit; ausdrücklich angegebene Auflösungszeiten haben Vorrang und die "
"aktuelle Berechtigungsprüfung gilt unverändert."
),
}
},
), ),
), ),
architecture=declared_module_architecture( architecture=declared_module_architecture(
+29
View File
@@ -0,0 +1,29 @@
from __future__ import annotations
import unittest
from govoplan_core.core.modules import documentation_structured_translation_issues
from govoplan_mandates.backend.manifest import manifest
class MandatesDocumentationTests(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"))
)
self.assertEqual((), documentation_structured_translation_issues(topic))
def test_definition_topic_is_the_field_and_consequence_reference(self) -> None:
topic = next(
item
for item in manifest.documentation
if item.id == "mandates.definition-and-resolution"
)
self.assertEqual("reference", topic.metadata.get("kind"))
if __name__ == "__main__":
unittest.main()