docs: localize poll guidance
Module Package Release / publish-packages (push) Successful in 10s

This commit is contained in:
2026-08-22 08:27:57 +02:00
parent 02ec5423b9
commit bf25e88f77
4 changed files with 47 additions and 4 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "govoplan-poll"
version = "0.1.18"
version = "0.1.19"
description = "GovOPlaN lightweight poll and availability decision module seed."
readme = "README.md"
requires-python = ">=3.12"
+1 -1
View File
@@ -2,4 +2,4 @@
__all__ = ["__version__"]
__version__ = "0.1.18"
__version__ = "0.1.19"
+37 -1
View File
@@ -23,7 +23,7 @@ from govoplan_poll.backend.dsar_provider import POLL_DSAR_CAPABILITY, PollDsarPr
MODULE_ID = "poll"
MODULE_NAME = "Poll"
MODULE_VERSION = "0.1.18"
MODULE_VERSION = "0.1.19"
READ_SCOPE = "poll:poll:read"
WRITE_SCOPE = "poll:poll:write"
ADMIN_SCOPE = "poll:poll:admin"
@@ -83,6 +83,17 @@ DOCUMENTATION = (
documentation_types=("admin", "user"),
audience=("user", "operator", "module_admin", "product_owner"),
related_modules=("scheduling", "evaluation", "calendar", "campaigns", "portal"),
translations={
"de": {
"title": "Abgrenzung des Poll-Moduls",
"summary": "Leichtgewichtige Entscheidungs- und Verfügbarkeitsabfragen für wiederverwendbare Modulintegrationen.",
"body": (
"Poll verwaltet wiederverwendbare Abfragedefinitionen, Optionen, Einladungen, Antworten, Sichtbarkeitsregeln, Abschlusssemantik und Ergebnisübersichten. "
"Scheduling verwendet Poll für Verfügbarkeitsmatrizen, während Evaluation umfangreichere Befragungen, Bewertungen, Rubriken und Analysen verwaltet. "
"Access ist optional: Wenn es installiert ist, kann Poll die Auflösung von Akteuren, Berechtigungsprüfungen und Rollenvorlagen nutzen; ohne Access ist Poll auf anonyme, signierte Link- oder durch Adapter bereitgestellte Teilnahmeabläufe beschränkt."
),
}
},
metadata={"seed": True},
),
DocumentationTopic(
@@ -99,6 +110,18 @@ DOCUMENTATION = (
documentation_types=("user",),
audience=("user", "participant", "organizer"),
related_modules=("scheduling", "evaluation"),
translations={
"de": {
"title": "An einer Abfrage teilnehmen",
"summary": "Abfragen können Einzel- oder Mehrfachauswahl, Ja/Nein, Ja/Nein/Vielleicht, Rangfolgen und Verfügbarkeiten erfassen.",
"body": (
"Eine Einladung oder ein signierter Teilnahmelink bestimmt, zu welcher Abfrage und Teilnehmeridentität eine Antwort gehört. "
"Die Abfragerichtlinie steuert Anonymität, nachträgliche Änderungen, Ergebnissichtbarkeit, Öffnungs- und Schließzeiten sowie die Zulässigkeit der Antwort Vielleicht. "
"Das Absenden ist atomar: Kapazitäts- und Auswahlbedingungen werden geprüft, bevor die gespeicherte Antwort eine frühere Antwort ersetzt. "
"Ein gültiger signierter Link löst außerdem vor der Ausführung von Poll seinen Mandanten auf, sodass die Modulrichtlinie des Mandanten die öffentliche Oberfläche zurückziehen kann, ohne Zustand eines anderen Mandanten offenzulegen."
),
}
},
metadata={"kind": "reference"},
),
)
@@ -241,6 +264,19 @@ manifest = ModuleManifest(
documentation_types=("admin", "user"),
audience=("user", "participant", "organizer", "auditor"),
related_modules=("core", "scheduling", "notifications", "mail"),
translations={
"de": {
"title": "Datenschutzanfragen für Poll",
"summary": "Identifizierte Antworten und Einladungen exportieren und dabei Ergebnisintegrität sowie die Grenze anonymer Teilnahme wahren.",
"body": (
"Poll korreliert ausschließlich im aktiven Mandanten genaue Teilnehmerkennungen und normalisierte E-Mail-Adressen. "
"Eine passende Einladung kann ihre ausdrücklich verknüpfte Teilnahmeübermittlung und Antwort auflösen, ohne den signierten Token offenzulegen. "
"Eigene Antworten enthalten begrenzte Antwortwerte, Teilnehmerbezeichnungen, Poll-Kontext und Ausmusterungszustand. Einladungen enthalten Kontakt- und Lebenszyklusdaten, jedoch niemals Token-Hashes, Gateway-Konfiguration, Teilnahmebedingungen, Metadaten, Fingerabdrücke oder Idempotenzwerte. "
"Erstellungs- und Lebenszyklusaktivität wird nur als minimierte Zuordnung exportiert. Vollständig anonyme Antworten besitzen keinen stabilen Betroffenenbezug und können nicht korreliert werden. "
"Die Löschung von Teilnahmedaten erfordert eine manuelle Prüfung von Ergebnisintegrität und Aufbewahrung; keine automatische Aktion verändert unbemerkt ein Abfrageergebnis."
),
}
},
metadata={
"help_contexts": ["privacy.data-subject-requests"],
"consequence_classes": {
+8 -1
View File
@@ -25,9 +25,16 @@ class PollManifestTests(unittest.TestCase):
self.assertIn("poll.signed_participation", {interface.name for interface in manifest.provides_interfaces})
self.assertIn("poll.governed_participation", {interface.name for interface in manifest.provides_interfaces})
self.assertIn(CAPABILITY_POLL_PARTICIPATION_GATEWAY, manifest.capability_factories)
self.assertEqual(manifest.version, "0.1.18")
self.assertEqual(manifest.version, "0.1.19")
self.assertIn("poll:response:write", {permission.scope for permission in manifest.permissions})
for topic in manifest.documentation:
german = topic.translations.get("de", {})
self.assertTrue(
all(german.get(field) for field in ("title", "summary", "body")),
topic.id,
)
if __name__ == "__main__":
unittest.main()