Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8882442c09 | ||
|
|
4d44357745 | ||
|
|
97dfed5764 |
+2
-2
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "govoplan-evaluation"
|
name = "govoplan-evaluation"
|
||||||
version = "0.1.17"
|
version = "0.1.20"
|
||||||
description = "GovOPlaN structured evaluation, feedback, scoring, and survey module seed."
|
description = "GovOPlaN structured evaluation, feedback, scoring, and survey module seed."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
license = { file = "LICENSE" }
|
license = { file = "LICENSE" }
|
||||||
authors = [{ name = "GovOPlaN" }]
|
authors = [{ name = "GovOPlaN" }]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"govoplan-core>=0.1.17",
|
"govoplan-core>=0.1.18",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.setuptools.packages.find]
|
[tool.setuptools.packages.find]
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
__all__ = ["__version__"]
|
__all__ = ["__version__"]
|
||||||
|
|
||||||
__version__ = "0.1.17"
|
__version__ = "0.1.20"
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
"""German translations for public structured documentation metadata."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'evaluation.module-boundary': {'consequence_classes': {'seed_boundary': 'Deklariert Besitz und '
|
||||||
|
'optionale '
|
||||||
|
'Integrationsgrenzen; es '
|
||||||
|
'ist noch kein '
|
||||||
|
'Laufzeit-Workflow '
|
||||||
|
'verfügbar.'}}}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from govoplan_core.core.modules import with_documentation_structured_translations
|
||||||
|
from govoplan_evaluation.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS
|
||||||
|
|
||||||
from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER
|
from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER
|
||||||
from govoplan_core.core.modules import (
|
from govoplan_core.core.modules import (
|
||||||
DocumentationTopic,
|
DocumentationTopic,
|
||||||
@@ -13,7 +16,7 @@ from govoplan_core.core.provider_governance import declared_module_architecture
|
|||||||
|
|
||||||
MODULE_ID = "evaluation"
|
MODULE_ID = "evaluation"
|
||||||
MODULE_NAME = "Evaluation"
|
MODULE_NAME = "Evaluation"
|
||||||
MODULE_VERSION = "0.1.17"
|
MODULE_VERSION = "0.1.20"
|
||||||
READ_SCOPE = "evaluation:evaluation:read"
|
READ_SCOPE = "evaluation:evaluation:read"
|
||||||
WRITE_SCOPE = "evaluation:evaluation:write"
|
WRITE_SCOPE = "evaluation:evaluation:write"
|
||||||
ADMIN_SCOPE = "evaluation:evaluation:admin"
|
ADMIN_SCOPE = "evaluation:evaluation:admin"
|
||||||
@@ -74,8 +77,24 @@ DOCUMENTATION = (
|
|||||||
layer="available",
|
layer="available",
|
||||||
documentation_types=("admin", "user"),
|
documentation_types=("admin", "user"),
|
||||||
audience=("user", "operator", "module_admin", "product_owner"),
|
audience=("user", "operator", "module_admin", "product_owner"),
|
||||||
|
translations={
|
||||||
|
"de": {
|
||||||
|
"title": "Modulgrenze von Evaluation",
|
||||||
|
"summary": "Strukturierte Fragebögen, Rückmeldungen, Bewertungsraster, Punktevergaben, Aggregationen und berichtsfertige Evaluationsergebnisse.",
|
||||||
|
"body": (
|
||||||
|
"Evaluation verwaltet strukturierte Rückmeldungen nach einem Verfahren, Befragungen, Punktevergaben, Bewertungsraster, wiederkehrende Evaluationsläufe, Aggregationen und exportfähige Ergebnisse. "
|
||||||
|
"Antwortsammlungen aus Poll können als Kontext übernommen werden; einfache Entscheidungs- und Verfügbarkeitsumfragen verbleiben jedoch bei Poll. Access ist optional: Ist es installiert, kann Evaluation Identitätsauflösung, Berechtigungsprüfung und Rollenvorlagen verwenden; ohne Access bleiben reduzierte lokale Antwortabläufe oder Abläufe über öffentliche Links möglich."
|
||||||
|
),
|
||||||
|
}
|
||||||
|
},
|
||||||
related_modules=("poll", "scheduling", "calendar", "campaigns", "forms", "forms_runtime", "reporting"),
|
related_modules=("poll", "scheduling", "calendar", "campaigns", "forms", "forms_runtime", "reporting"),
|
||||||
metadata={"seed": True},
|
metadata={
|
||||||
|
"kind": "reference",
|
||||||
|
"seed": True,
|
||||||
|
"consequence_classes": {
|
||||||
|
"seed_boundary": "Declares ownership and optional integration boundaries; no runtime workflow is available yet.",
|
||||||
|
},
|
||||||
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -109,5 +128,10 @@ manifest = ModuleManifest(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
manifest = with_documentation_structured_translations(
|
||||||
|
manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_manifest() -> ModuleManifest:
|
def get_manifest() -> ModuleManifest:
|
||||||
return manifest
|
return manifest
|
||||||
|
|||||||
@@ -19,6 +19,15 @@ class EvaluationManifestTests(unittest.TestCase):
|
|||||||
self.assertIn("poll", manifest.optional_dependencies)
|
self.assertIn("poll", manifest.optional_dependencies)
|
||||||
self.assertIn("evaluation.result_aggregation", {interface.name for interface in manifest.provides_interfaces})
|
self.assertIn("evaluation.result_aggregation", {interface.name for interface in manifest.provides_interfaces})
|
||||||
self.assertIn("poll.response_collection", {interface.name for interface in manifest.requires_interfaces})
|
self.assertIn("poll.response_collection", {interface.name for interface in manifest.requires_interfaces})
|
||||||
|
topic = manifest.documentation[0]
|
||||||
|
self.assertEqual("reference", topic.metadata["kind"])
|
||||||
|
self.assertIn("seed_boundary", topic.metadata["consequence_classes"])
|
||||||
|
self.assertTrue(
|
||||||
|
all(
|
||||||
|
topic.translations.get("de", {}).get(field)
|
||||||
|
for field in ("title", "summary", "body")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user