Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f062cb2f6 | ||
|
|
0e35520690 |
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@govoplan/procurement",
|
||||
"version": "0.1.18",
|
||||
"version": "0.1.20",
|
||||
"private": true,
|
||||
"description": "GovOPlaN Procurement platform module seed.",
|
||||
"type": "module",
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "govoplan-procurement"
|
||||
version = "0.1.18"
|
||||
version = "0.1.20"
|
||||
description = "GovOPlaN Procurement platform module seed."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
"""German translations for public structured documentation metadata."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
|
||||
GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'procurement.module-boundary': {'consequence_classes': {'seed_boundary': 'Erklärt nur Besitz und '
|
||||
'Berechtigungen an; es '
|
||||
'ist noch kein '
|
||||
'Laufzeit-Workflow '
|
||||
'verfügbar.'}}}
|
||||
@@ -1,12 +1,15 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from govoplan_core.core.modules import with_documentation_structured_translations
|
||||
from govoplan_procurement.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 DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate
|
||||
from govoplan_core.core.provider_governance import declared_module_architecture
|
||||
|
||||
MODULE_ID = "procurement"
|
||||
MODULE_NAME = "Procurement"
|
||||
MODULE_VERSION = "0.1.18"
|
||||
MODULE_VERSION = "0.1.20"
|
||||
READ_SCOPE = "procurement:workspace:read"
|
||||
WRITE_SCOPE = "procurement:workspace:write"
|
||||
ADMIN_SCOPE = "procurement:workspace:admin"
|
||||
@@ -70,6 +73,13 @@ DOCUMENTATION = (
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
audience=("user", "operator", "module_admin", "product_owner"),
|
||||
translations={
|
||||
"de": {
|
||||
"title": "Modulgrenze von Procurement",
|
||||
"summary": "Beschaffungsverfahren für Bedarfsanforderungen, Genehmigungen, Lieferantenvergleiche, Ausschreibungsverweise, Vertragsübergaben, Wareneingänge und Rechnungsabgleiche.",
|
||||
"body": "Dieses Repository ist derzeit ein Grundgerüst für ein Plattformmodul. Es registriert die Fachgrenze, Berechtigungsoberfläche, Rollenvorlagen und Dokumentationsmetadaten, bevor Laufzeit-APIs, Datenbankmodelle, Migrationen und WebUI-Routen eingeführt werden.",
|
||||
}
|
||||
},
|
||||
order=100,
|
||||
related_modules=OPTIONAL_DEPENDENCIES,
|
||||
links=(
|
||||
@@ -80,7 +90,11 @@ DOCUMENTATION = (
|
||||
),
|
||||
),
|
||||
metadata={
|
||||
"kind": "reference",
|
||||
"seed": True,
|
||||
"consequence_classes": {
|
||||
"seed_boundary": "Declares ownership and permissions only; no runtime workflow is available yet.",
|
||||
},
|
||||
"domain_objects": ['purchase request lifecycle', 'vendor comparison records', 'tender references', 'goods receipt facts', 'contract handoff state', 'invoice matching context'],
|
||||
"first_slice": "Define purchase request, vendor comparison, goods receipt, and contract handoff records before integrating approval chains.",
|
||||
},
|
||||
@@ -109,5 +123,10 @@ manifest = ModuleManifest(
|
||||
)
|
||||
|
||||
|
||||
manifest = with_documentation_structured_translations(
|
||||
manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS
|
||||
)
|
||||
|
||||
|
||||
def get_manifest() -> ModuleManifest:
|
||||
return manifest
|
||||
|
||||
@@ -15,6 +15,15 @@ class ManifestSeedTests(unittest.TestCase):
|
||||
self.assertEqual({permission.scope for permission in manifest.permissions}, {READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE})
|
||||
self.assertEqual({role.slug for role in manifest.role_templates}, {"procurement_manager", "procurement_viewer"})
|
||||
self.assertTrue(manifest.documentation)
|
||||
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")
|
||||
)
|
||||
)
|
||||
self.assertIsNone(manifest.route_factory)
|
||||
self.assertIsNone(manifest.migration_spec)
|
||||
self.assertIsNone(manifest.frontend)
|
||||
|
||||
Reference in New Issue
Block a user