docs(notifications): complete German reference coverage
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "govoplan-notifications"
|
||||
version = "0.1.18"
|
||||
version = "0.1.19"
|
||||
description = "GovOPlaN notification inbox and delivery module."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
|
||||
@@ -12,6 +12,7 @@ from govoplan_core.core.module_guards import (
|
||||
)
|
||||
from govoplan_core.core.modules import (
|
||||
CapabilityDocumentation,
|
||||
DocumentationCondition,
|
||||
DocumentationTopic,
|
||||
FrontendModule,
|
||||
FrontendRoute,
|
||||
@@ -36,7 +37,7 @@ from govoplan_notifications.backend.dsar_provider import (
|
||||
|
||||
MODULE_ID = "notifications"
|
||||
MODULE_NAME = "Notifications"
|
||||
MODULE_VERSION = "0.1.18"
|
||||
MODULE_VERSION = "0.1.19"
|
||||
READ_SCOPE = "notifications:notification:read"
|
||||
WRITE_SCOPE = "notifications:notification:write"
|
||||
DISPATCH_SCOPE = "notifications:delivery:dispatch"
|
||||
@@ -204,6 +205,46 @@ manifest = ModuleManifest(
|
||||
),
|
||||
},
|
||||
},
|
||||
translations={
|
||||
"de": {
|
||||
"title": "Datenschutzanfragen zu Benachrichtigungen",
|
||||
"summary": (
|
||||
"An eine betroffene Person adressierte Benachrichtigungen und Einstellungen ausgeben, "
|
||||
"persönliche Posteingangskopien löschen und externe Zustellnachweise prüfen."
|
||||
),
|
||||
"body": (
|
||||
"Notifications gleicht verifizierte Konto-, Mitgliedschafts-, Identitäts-, Benutzer- und "
|
||||
"E-Mail-Selektoren ausschließlich innerhalb des aktiven Mandanten ab. Das Auskunftspaket "
|
||||
"enthält begrenzte Nachrichteninhalte, Empfängerfelder, Lebenszykluszeitpunkte, Quellverweise, "
|
||||
"Nutzdaten und Metadaten sowie bereinigte Zustellversuche. Persönliche Einstellungen für "
|
||||
"Kennzeichen, E-Mail, Zusammenfassungen und stummgeschaltete Quellmodule werden ebenfalls "
|
||||
"einbezogen. Ausdrückliche Benachrichtigungs- oder Einstellungsverweise dürfen eine Anfrage nur "
|
||||
"einschränken und müssen weiterhin zur betroffenen Person gehören. Nachrichten im internen "
|
||||
"Posteingang sind abgeleitete Kopien und können deshalb nach Empfänger- und Änderungsprüfung "
|
||||
"gelöscht werden, ohne dem Quellverweis in das Eigentümermodul zu folgen. Persönliche "
|
||||
"Einstellungen können ebenfalls gelöscht werden; anschließend gelten wieder die Standardwerte. "
|
||||
"Mail- und andere externe Kanalnachweise erfordern eine manuelle Aufbewahrungsprüfung, weil beim "
|
||||
"Anbieter Annahme- und Zustellnachweise verbleiben können. Eine wiederholte Ausführung bleibt "
|
||||
"unverändert; fremde Mandanten und Empfänger werden nie einbezogen."
|
||||
),
|
||||
}
|
||||
},
|
||||
structured_translation_version="1",
|
||||
structured_translations={
|
||||
"de": {
|
||||
"consequence_classes": {
|
||||
"delete_inbox_copy": (
|
||||
"Entfernt die abgeleitete interne Benachrichtigung und ihre Versuche, nicht den Datensatz des Quellmoduls."
|
||||
),
|
||||
"delete_preferences": (
|
||||
"Entfernt persönliche Abweichungen; anschließend gelten wieder die Benachrichtigungsstandardwerte."
|
||||
),
|
||||
"review_external_delivery": (
|
||||
"Erfordert eine autorisierte Aufbewahrungsprüfung, bevor externe Zustellnachweise verändert werden."
|
||||
),
|
||||
}
|
||||
}
|
||||
},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id="notifications.center-and-preferences",
|
||||
@@ -212,9 +253,10 @@ manifest = ModuleManifest(
|
||||
body="Open the notification center to read, acknowledge, or follow notifications from enabled modules. Personal source-muting preferences remove matching entries from the personal list and badge counts even when a producer addressed the actor through an account, membership, or identity identifier; tenant-administrator evidence views remain complete. Preferences also control eligible delivery channels and categories. Disabling an optional external channel does not remove an unmuted in-product notification unless the originating module's retention policy does so.",
|
||||
documentation_types=("user",),
|
||||
audience=("user",),
|
||||
conditions=(DocumentationCondition(required_scopes=(READ_SCOPE,)),),
|
||||
related_modules=("mail", "calendar", "scheduling", "workflow_engine"),
|
||||
metadata={
|
||||
"kind": "reference",
|
||||
"kind": "workflow",
|
||||
"help_contexts": [
|
||||
"notifications.route.notifications",
|
||||
"notifications.page.inbox",
|
||||
@@ -230,6 +272,39 @@ manifest = ModuleManifest(
|
||||
"update_preferences": "replace the current user's badge, channel, digest, and source-muting preferences",
|
||||
},
|
||||
},
|
||||
translations={
|
||||
"de": {
|
||||
"title": "Benachrichtigungszentrale verwenden",
|
||||
"summary": (
|
||||
"Das Kennzeichen in der Titelleiste und die Benachrichtigungszentrale bündeln dauerhafte Hinweise, "
|
||||
"die außerhalb einer unmittelbaren Anfrage Aufmerksamkeit erfordern."
|
||||
),
|
||||
"body": (
|
||||
"Die Benachrichtigungszentrale zeigt Hinweise aktivierter Module zum Lesen, Bestätigen oder "
|
||||
"Weiterverfolgen. Persönlich stummgeschaltete Quellmodule entfernen passende Einträge aus der "
|
||||
"persönlichen Liste und der Kennzahl, auch wenn ein Erzeugermodul die Person über Konto, "
|
||||
"Mitgliedschaft oder Identität adressiert hat; Nachweisansichten für Mandantenadministratoren "
|
||||
"bleiben vollständig. Die Einstellungen steuern außerdem zulässige Zustellkanäle und Kategorien. "
|
||||
"Das Abschalten eines optionalen externen Kanals entfernt keine nicht stummgeschaltete interne "
|
||||
"Benachrichtigung, sofern dies nicht die Aufbewahrungsregel des Ursprungsmoduls vorsieht."
|
||||
),
|
||||
}
|
||||
},
|
||||
structured_translation_version="1",
|
||||
structured_translations={
|
||||
"de": {
|
||||
"consequence_classes": {
|
||||
"mark_read": "Markiert die Benachrichtigung für den aktuellen Empfänger als gelesen.",
|
||||
"acknowledge": "Hält zusätzlich zum Lesestatus eine ausdrückliche Bestätigung des Empfängers fest.",
|
||||
"cancel": (
|
||||
"Stoppt eine geeignete Benachrichtigung vor der Anbieterannahme, ohne einen Fernrückruf zu behaupten."
|
||||
),
|
||||
"update_preferences": (
|
||||
"Ersetzt die Einstellungen des aktuellen Benutzers für Kennzeichen, Kanäle, Zusammenfassungen und stummgeschaltete Quellen."
|
||||
),
|
||||
}
|
||||
}
|
||||
},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id="notifications.delivery-operations",
|
||||
@@ -251,6 +326,37 @@ manifest = ModuleManifest(
|
||||
"inspect_attempts": "read sanitized provider, status, timing, and error evidence for the selected notification",
|
||||
},
|
||||
},
|
||||
translations={
|
||||
"de": {
|
||||
"title": "Benachrichtigungszustellung betreiben",
|
||||
"summary": (
|
||||
"Notifications speichert Nachrichtenabsicht und begrenzte kanalbezogene Versuche, bevor Worker optionale Zustellkanäle ausführen."
|
||||
),
|
||||
"body": (
|
||||
"Erzeugende Module übergeben Benachrichtigungen über die Dispatch-Fähigkeit und verwalten keine "
|
||||
"Zugangsdaten für die Zustellung. Die interne Zustellung ist die Grundlage. Produktive "
|
||||
"E-Mail-Zustellung steht nur über eine aktivierte Mail-Fähigkeit bereit; Dateizustellung bleibt auf "
|
||||
"Entwicklung beschränkt. Betreiber können ausstehende und fehlgeschlagene Versuche prüfen und nur "
|
||||
"Ergebnisse erneut versuchen, deren Wiederholung sicher ist. Die Modulberechtigung des Mandanten "
|
||||
"wird vor dem Einreihen und erneut vor der Worker-Zustellung geprüft. Das Deaktivieren von "
|
||||
"Notifications bewahrt angenommene Nachrichten und bietet eine Betreiberaktion an, statt sie "
|
||||
"unbemerkt zu verarbeiten."
|
||||
),
|
||||
}
|
||||
},
|
||||
structured_translation_version="1",
|
||||
structured_translations={
|
||||
"de": {
|
||||
"consequence_classes": {
|
||||
"dispatch_pending": (
|
||||
"Versucht die Zustellung für höchstens die angeforderte Anzahl geeigneter Mandantenbenachrichtigungen."
|
||||
),
|
||||
"inspect_attempts": (
|
||||
"Liest bereinigte Anbieter-, Status-, Zeit- und Fehlernachweise der ausgewählten Benachrichtigung."
|
||||
),
|
||||
}
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
frontend=FrontendModule(
|
||||
|
||||
@@ -3,6 +3,10 @@ from __future__ import annotations
|
||||
from pathlib import Path
|
||||
import unittest
|
||||
|
||||
from govoplan_core.core.modules import (
|
||||
documentation_structured_translation_issues,
|
||||
localizable_documentation_metadata_keys,
|
||||
)
|
||||
from govoplan_notifications.backend.manifest import get_manifest
|
||||
|
||||
|
||||
@@ -59,6 +63,25 @@ class NotificationsInterfaceDocumentationContractTests(unittest.TestCase):
|
||||
self.assertIn("notifications.action.dispatch", delivery.metadata["help_contexts"])
|
||||
self.assertIn("dispatch_pending", delivery.metadata["consequence_classes"])
|
||||
|
||||
def test_german_reference_documentation_is_complete(self) -> None:
|
||||
topics = get_manifest().documentation
|
||||
self.assertEqual(3, len(topics))
|
||||
for topic in topics:
|
||||
translation = topic.translations.get("de", {})
|
||||
self.assertTrue(translation.get("title"), topic.id)
|
||||
self.assertTrue(translation.get("summary"), topic.id)
|
||||
self.assertTrue(translation.get("body"), topic.id)
|
||||
if localizable_documentation_metadata_keys(topic):
|
||||
self.assertEqual("1", topic.structured_translation_version, topic.id)
|
||||
self.assertIn("de", topic.structured_translations, topic.id)
|
||||
self.assertEqual((), documentation_structured_translation_issues(topic))
|
||||
|
||||
center = next(topic for topic in topics if topic.id == "notifications.center-and-preferences")
|
||||
delivery = next(topic for topic in topics if topic.id == "notifications.delivery-operations")
|
||||
self.assertEqual("workflow", center.metadata["kind"])
|
||||
self.assertTrue(center.conditions)
|
||||
self.assertEqual("reference", delivery.metadata["kind"])
|
||||
|
||||
def test_webui_uses_shared_consequence_and_draft_patterns(self) -> None:
|
||||
center = (REPO_ROOT / "webui/src/features/notifications/NotificationCenterPage.tsx").read_text(encoding="utf-8")
|
||||
settings = (REPO_ROOT / "webui/src/features/notifications/NotificationSettingsPanel.tsx").read_text(encoding="utf-8")
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@govoplan/notifications-webui",
|
||||
"version": "0.1.18",
|
||||
"version": "0.1.19",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
|
||||
Reference in New Issue
Block a user