fix(manifest): normalize runtime module id

This commit is contained in:
2026-07-20 20:01:50 +02:00
parent 245a571c60
commit a6db06630c
5 changed files with 11 additions and 9 deletions

View File

@@ -6,6 +6,8 @@
`govoplan-issue-reporting` is the GovOPlaN platform module seed for public or internal problem reporting for broken infrastructure, damaged rooms, IT outages, safety issues, accessibility issues, triage, and routing. `govoplan-issue-reporting` is the GovOPlaN platform module seed for public or internal problem reporting for broken infrastructure, damaged rooms, IT outages, safety issues, accessibility issues, triage, and routing.
Its runtime module ID is `issue_reporting`; the repository and Python distribution retain the hyphenated `govoplan-issue-reporting` name.
This repository is initialized as a discoverable module seed. It exposes a module manifest, initial permissions, role templates, documentation metadata, Gitea workflow templates, and a focused manifest test. It intentionally does not yet add HTTP routes, database models, migrations, or WebUI navigation. This repository is initialized as a discoverable module seed. It exposes a module manifest, initial permissions, role templates, documentation metadata, Gitea workflow templates, and a focused manifest test. It intentionally does not yet add HTTP routes, database models, migrations, or WebUI navigation.
## Initial Ownership ## Initial Ownership
@@ -34,7 +36,7 @@ Expected optional integrations:
- cases - cases
- assets - assets
- facilities - facilities
- forms-runtime - forms_runtime
- portal - portal
- files - files
- workflow - workflow

View File

@@ -24,7 +24,7 @@ Public or internal problem reporting for broken infrastructure, damaged rooms, I
- cases - cases
- assets - assets
- facilities - facilities
- forms-runtime - forms_runtime
- portal - portal
- files - files
- workflow - workflow

View File

@@ -22,4 +22,4 @@ where = ["src"]
govoplan_issue_reporting = ["py.typed"] govoplan_issue_reporting = ["py.typed"]
[project.entry-points."govoplan.modules"] [project.entry-points."govoplan.modules"]
"issue-reporting" = "govoplan_issue_reporting.backend.manifest:get_manifest" issue_reporting = "govoplan_issue_reporting.backend.manifest:get_manifest"

View File

@@ -3,18 +3,18 @@ from __future__ import annotations
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 DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate from govoplan_core.core.modules import DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate
MODULE_ID = "issue-reporting" MODULE_ID = "issue_reporting"
MODULE_NAME = "Issue Reporting" MODULE_NAME = "Issue Reporting"
MODULE_VERSION = "0.1.8" MODULE_VERSION = "0.1.8"
READ_SCOPE = "issue-reporting:workspace:read" READ_SCOPE = "issue_reporting:workspace:read"
WRITE_SCOPE = "issue-reporting:workspace:write" WRITE_SCOPE = "issue_reporting:workspace:write"
ADMIN_SCOPE = "issue-reporting:workspace:admin" ADMIN_SCOPE = "issue_reporting:workspace:admin"
OPTIONAL_DEPENDENCIES = ( OPTIONAL_DEPENDENCIES = (
"helpdesk", "helpdesk",
"cases", "cases",
"assets", "assets",
"facilities", "facilities",
"forms-runtime", "forms_runtime",
"portal", "portal",
"files", "files",
"workflow", "workflow",

View File

@@ -9,7 +9,7 @@ class ManifestSeedTests(unittest.TestCase):
def test_manifest_registers_seed_contract(self) -> None: def test_manifest_registers_seed_contract(self) -> None:
manifest = get_manifest() manifest = get_manifest()
self.assertEqual(manifest.id, "issue-reporting") self.assertEqual(manifest.id, "issue_reporting")
self.assertEqual(manifest.name, "Issue Reporting") self.assertEqual(manifest.name, "Issue Reporting")
self.assertEqual(manifest.dependencies, ("access",)) self.assertEqual(manifest.dependencies, ("access",))
self.assertEqual({permission.scope for permission in manifest.permissions}, {READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE}) self.assertEqual({permission.scope for permission in manifest.permissions}, {READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE})