Release govoplan-committee v0.1.21: unify interface contracts and documentation
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@govoplan/committee",
|
"name": "@govoplan/committee",
|
||||||
"version": "0.1.20",
|
"version": "0.1.21",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "GovOPlaN Committee platform module seed.",
|
"description": "GovOPlaN Committee platform module seed.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "govoplan-committee"
|
name = "govoplan-committee"
|
||||||
version = "0.1.20"
|
version = "0.1.21"
|
||||||
description = "GovOPlaN committee governance and formal-decision integration module."
|
description = "GovOPlaN committee governance and formal-decision integration module."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ from govoplan_core.db.base import Base
|
|||||||
|
|
||||||
MODULE_ID = "committee"
|
MODULE_ID = "committee"
|
||||||
MODULE_NAME = "Committee"
|
MODULE_NAME = "Committee"
|
||||||
MODULE_VERSION = "0.1.20"
|
MODULE_VERSION = "0.1.21"
|
||||||
READ_SCOPE = "committee:workspace:read"
|
READ_SCOPE = "committee:workspace:read"
|
||||||
WRITE_SCOPE = "committee:workspace:write"
|
WRITE_SCOPE = "committee:workspace:write"
|
||||||
BALLOT_SCOPE = "committee:ballot:finalize"
|
BALLOT_SCOPE = "committee:ballot:finalize"
|
||||||
@@ -554,6 +554,21 @@ manifest = ModuleManifest(
|
|||||||
permissions=PERMISSIONS,
|
permissions=PERMISSIONS,
|
||||||
role_templates=ROLE_TEMPLATES,
|
role_templates=ROLE_TEMPLATES,
|
||||||
documentation=(
|
documentation=(
|
||||||
|
DocumentationTopic(
|
||||||
|
id="committee.workspace-layout",
|
||||||
|
title="Committee workspace layout",
|
||||||
|
summary="Find workspace actions and read consistently arranged content.",
|
||||||
|
body="Reload and New body share the workspace-wide action bar at the upper right; Reload sits directly before New. Searching and selecting a body, meeting, or agenda item leaves those workspace actions in place. Item editing, ballots, and finalization remain scoped to the selected record. Disabled controls explain missing authority; administrators grant the existing management permissions rather than changing layouts.",
|
||||||
|
layer="static",
|
||||||
|
documentation_types=("user", "admin"),
|
||||||
|
audience=("user", "module_admin", "operator"),
|
||||||
|
order=5,
|
||||||
|
translations={"de": {
|
||||||
|
"title": "Gremien: Aufbau des Arbeitsbereichs",
|
||||||
|
"summary": "Arbeitsbereichsaktionen finden und einheitlich angeordnete Inhalte lesen.",
|
||||||
|
"body": "Neu laden und Neues Gremium stehen oben rechts in der gemeinsamen Arbeitsbereichsleiste; Neu laden steht unmittelbar vor Neu. Suche und Auswahl eines Gremiums, einer Sitzung oder eines Tagesordnungspunkts verändern diese Positionen nicht. Bearbeitung, Abstimmungen und Abschluss bleiben dem ausgewählten Datensatz zugeordnet. Deaktivierte Aktionen erklären fehlende Berechtigungen; Administratoren vergeben die bestehenden Verwaltungsrechte, statt das Layout zu ändern.",
|
||||||
|
}},
|
||||||
|
),
|
||||||
DocumentationTopic(
|
DocumentationTopic(
|
||||||
id="committee.data-subject-requests",
|
id="committee.data-subject-requests",
|
||||||
title="Committee data-subject requests",
|
title="Committee data-subject requests",
|
||||||
|
|||||||
@@ -12,7 +12,21 @@ from govoplan_committee.backend.manifest import manifest
|
|||||||
class CommitteeDocumentationTests(unittest.TestCase):
|
class CommitteeDocumentationTests(unittest.TestCase):
|
||||||
def test_german_reference_documentation_is_complete(self) -> None:
|
def test_german_reference_documentation_is_complete(self) -> None:
|
||||||
topics = manifest.documentation
|
topics = manifest.documentation
|
||||||
self.assertEqual(3, len(topics))
|
by_id = {topic.id: topic for topic in topics}
|
||||||
|
self.assertEqual(len(topics), len(by_id), "Documentation topic IDs must be unique")
|
||||||
|
self.assertLessEqual(
|
||||||
|
{
|
||||||
|
"committee.module-boundary",
|
||||||
|
"committee.reference.fields-and-consequences",
|
||||||
|
"committee.data-subject-requests",
|
||||||
|
"committee.workspace-layout",
|
||||||
|
},
|
||||||
|
set(by_id),
|
||||||
|
)
|
||||||
|
self.assertLessEqual(
|
||||||
|
{"user", "admin"},
|
||||||
|
set(by_id["committee.workspace-layout"].documentation_types),
|
||||||
|
)
|
||||||
for topic in topics:
|
for topic in topics:
|
||||||
translation = topic.translations.get("de", {})
|
translation = topic.translations.get("de", {})
|
||||||
self.assertTrue(translation.get("title"), topic.id)
|
self.assertTrue(translation.get("title"), topic.id)
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@govoplan/committee-webui",
|
"name": "@govoplan/committee-webui",
|
||||||
"version": "0.1.20",
|
"version": "0.1.21",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
|
|||||||
Reference in New Issue
Block a user