Migrate Committee interface patterns
This commit is contained in:
@@ -237,6 +237,17 @@ DOCUMENTATION = (
|
||||
),
|
||||
metadata={
|
||||
"seed": True,
|
||||
"help_contexts": [
|
||||
"committee.navigation",
|
||||
"committee.workspace",
|
||||
"committee.state.read-only",
|
||||
"committee.state.permission-blocked",
|
||||
],
|
||||
"privacy_notes": [
|
||||
"Committee lists expose only records authorized by the active tenant and permission context.",
|
||||
"Provider-backed voting stores aggregate result evidence, not individual confidential ballots.",
|
||||
"Protected decision reasoning requires the dedicated protected-read permission.",
|
||||
],
|
||||
"domain_objects": [
|
||||
"committee bodies",
|
||||
"meeting agendas",
|
||||
@@ -252,6 +263,53 @@ DOCUMENTATION = (
|
||||
],
|
||||
},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id=f"{MODULE_ID}.reference.fields-and-consequences",
|
||||
title="Committee fields and consequences",
|
||||
summary="Field provenance, lifecycle restrictions, optional provider references, and evidence consequences for Committee records.",
|
||||
body=(
|
||||
"Body organization-unit references determine institutional context but do not grant access by themselves. "
|
||||
"Meeting times establish agenda context. Subject, Decision, Approval, record, and ballot identifiers are stable "
|
||||
"cross-module references and remain optional only where the current lifecycle allows it. State transitions create "
|
||||
"new immutable revisions; terminal records cannot be edited in place. Closing a vote or accepting minutes requires "
|
||||
"the corresponding governed evidence. Provider ballot finalization imports only an aggregate result and assurance "
|
||||
"evidence. Change reasons are retained with every revision. Cancelling, withdrawing, or retiring a record stops future "
|
||||
"work but does not erase existing revisions, decisions, minutes, or audit evidence."
|
||||
),
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
audience=("user", "operator", "module_admin", "auditor"),
|
||||
order=110,
|
||||
related_modules=OPTIONAL_DEPENDENCIES,
|
||||
links=(
|
||||
DocumentationLink(
|
||||
label="Committee domain boundary",
|
||||
href="govoplan-committee/docs/COMMITTEE_DOMAIN_BOUNDARY.md",
|
||||
kind="repository",
|
||||
),
|
||||
),
|
||||
metadata={
|
||||
"seed": True,
|
||||
"help_contexts": [
|
||||
"committee.field.state",
|
||||
"committee.field.organization-unit-reference",
|
||||
"committee.field.subject-reference",
|
||||
"committee.field.decision-reference",
|
||||
"committee.field.approval-reference",
|
||||
"committee.field.evidence-reference",
|
||||
"committee.field.ballot-provider-reference",
|
||||
"committee.field.change-reason",
|
||||
"committee.action.change-state",
|
||||
"committee.action.finalize-ballot",
|
||||
],
|
||||
"consequence_classes": {
|
||||
"save_revision": "Creates a new immutable Committee record revision with its change reason.",
|
||||
"change_lifecycle": "Changes which future actions remain possible; terminal states are immutable.",
|
||||
"finalize_ballot": "Imports a governed aggregate result and evidence without retaining individual ballots.",
|
||||
"cancel_or_retire": "Stops future use while retaining institutional and audit evidence.",
|
||||
},
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
manifest = ModuleManifest(
|
||||
|
||||
Reference in New Issue
Block a user