Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8882442c09 | ||
|
|
4d44357745 | ||
|
|
97dfed5764 | ||
|
|
47c6cb9d57 | ||
|
|
ad326ee02f |
+2
-2
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "govoplan-evaluation"
|
||||
version = "0.1.15"
|
||||
version = "0.1.20"
|
||||
description = "GovOPlaN structured evaluation, feedback, scoring, and survey module seed."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
license = { file = "LICENSE" }
|
||||
authors = [{ name = "GovOPlaN" }]
|
||||
dependencies = [
|
||||
"govoplan-core>=0.1.15",
|
||||
"govoplan-core>=0.1.18",
|
||||
]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
__all__ = ["__version__"]
|
||||
|
||||
__version__ = "0.1.15"
|
||||
__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 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.modules import (
|
||||
DocumentationTopic,
|
||||
@@ -13,7 +16,7 @@ from govoplan_core.core.provider_governance import declared_module_architecture
|
||||
|
||||
MODULE_ID = "evaluation"
|
||||
MODULE_NAME = "Evaluation"
|
||||
MODULE_VERSION = "0.1.15"
|
||||
MODULE_VERSION = "0.1.20"
|
||||
READ_SCOPE = "evaluation:evaluation:read"
|
||||
WRITE_SCOPE = "evaluation:evaluation:write"
|
||||
ADMIN_SCOPE = "evaluation:evaluation:admin"
|
||||
@@ -74,8 +77,24 @@ DOCUMENTATION = (
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
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"),
|
||||
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:
|
||||
return manifest
|
||||
|
||||
@@ -19,6 +19,15 @@ class EvaluationManifestTests(unittest.TestCase):
|
||||
self.assertIn("poll", manifest.optional_dependencies)
|
||||
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})
|
||||
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__":
|
||||
|
||||
Reference in New Issue
Block a user