Migrate Views interface patterns

This commit is contained in:
2026-08-03 11:57:44 +02:00
parent c433434570
commit c125f332ba
12 changed files with 1013 additions and 198 deletions
+77
View File
@@ -11,6 +11,7 @@ from govoplan_core.core.module_guards import (
persistent_table_uninstall_guard,
)
from govoplan_core.core.modules import (
DocumentationLink,
DocumentationTopic,
FrontendModule,
MigrationSpec,
@@ -309,8 +310,84 @@ manifest = ModuleManifest(
documentation_types=("admin", "user"),
audience=("administrator", "power_user", "workflow_designer"),
related_modules=("access", "admin", "policy", "workflow_engine"),
links=(
DocumentationLink(
label="Views administration",
href="/admin?section=system-views",
kind="runtime",
),
DocumentationLink(
label="Views API",
href="/api/v1/views/definitions",
kind="api",
),
),
metadata={
"kind": "guide",
"help_contexts": [
"views.selector",
"views.admin.system",
"views.admin.tenant",
"views.settings.personal",
"views.admin.blocked",
],
},
order=18,
),
DocumentationTopic(
id="views.reference.fields-and-consequences",
title="View fields, assignments, and consequences",
summary=(
"Understand immutable revisions, assignment precedence, required "
"View safeguards, and the difference between visibility and access."
),
body=(
"A View definition owns immutable revisions of visible surface IDs. "
"Publishing makes the latest revision assignable. Available assignments "
"let users opt in, defaults apply until changed, and required assignments "
"cannot be left. User and group assignments take precedence over tenant "
"and system assignments. Pinning preserves one published revision; an "
"unpinned assignment follows later publications. Required Views must keep "
"the selector and administration escape surfaces. Hiding a surface never "
"grants or revokes authorization, and inherited definitions or assignments "
"must be changed in their owning scope."
),
documentation_types=("admin",),
audience=("administrator", "power_user", "workflow_designer"),
related_modules=("access", "admin", "policy", "workflow_engine"),
links=(
DocumentationLink(
label="Views administration",
href="/admin?section=system-views",
kind="runtime",
),
DocumentationLink(
label="View assignments API",
href="/api/v1/views/assignments",
kind="api",
),
),
metadata={
"kind": "reference",
"help_contexts": [
"views.field.name",
"views.field.description",
"views.field.surfaces",
"views.field.assignment-target",
"views.field.assignment-mode",
"views.field.assignment-priority",
"views.action.publish",
"views.action.archive",
],
"consequence_classes": {
"publish": "Creates the assignable immutable revision used by unpinned assignments.",
"required": "Constrains affected users while retaining selector and administration escape surfaces.",
"archive": "Deactivates optional assignments; required assignments must be removed first.",
"remove_assignment": "Stops the target from inheriting this assignment without deleting the View.",
},
},
order=19,
),
),
architecture=declared_module_architecture(
layer="governance_accountability",