Complete guided Scheduling interface patterns

This commit is contained in:
2026-08-03 10:36:14 +02:00
parent 3d8272b28e
commit c17cbdae63
9 changed files with 334 additions and 52 deletions
+36 -3
View File
@@ -7,6 +7,7 @@ from govoplan_core.core.calendar import CAPABILITY_CALENDAR_SCHEDULING
from govoplan_core.core.module_guards import drop_table_retirement_provider, persistent_table_uninstall_guard
from govoplan_core.core.modules import (
DocumentationTopic,
DocumentationCondition,
FrontendModule,
FrontendRoute,
MigrationSpec,
@@ -108,8 +109,31 @@ DOCUMENTATION = (
layer="configured",
documentation_types=("user",),
audience=("user", "organizer", "participant"),
conditions=(
DocumentationCondition(
any_scopes=(READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE, RESPOND_SCOPE),
),
),
related_modules=("poll", "calendar", "notifications", "mail"),
metadata={"kind": "reference"},
metadata={
"kind": "workflow",
"route": "/scheduling",
"screen": "Scheduling",
"help_contexts": [
"scheduling.list",
"scheduling.request",
"scheduling.editor",
"scheduling.public-participation",
],
"steps": [
"Prepare candidate times and participation controls.",
"Collect and review availability.",
"Close the poll and confirm the selected time.",
"Hand the decision to Calendar when configured.",
],
"outcome": "A recorded scheduling decision with bounded participation and optional Calendar handoff.",
"verification": "The request detail shows the decided slot, lifecycle state, participant aggregate, and any Calendar event reference.",
},
),
DocumentationTopic(
id="scheduling.calendar-coordination",
@@ -124,7 +148,10 @@ DOCUMENTATION = (
documentation_types=("admin", "user"),
audience=("organizer", "module_admin", "tenant_admin"),
related_modules=("calendar", "access", "policy"),
metadata={"kind": "reference", "context_ids": ["scheduling.calendar-integration"]},
metadata={
"kind": "reference",
"help_contexts": ["scheduling.calendar-integration", "scheduling.calendar-coordination"],
},
),
DocumentationTopic(
id="scheduling.participation-governance",
@@ -139,7 +166,13 @@ DOCUMENTATION = (
documentation_types=("admin",),
audience=("operator", "module_admin", "tenant_admin"),
related_modules=("poll", "policy", "access"),
metadata={"kind": "pattern", "context_ids": ["scheduling.public-participation-blocker"]},
metadata={
"kind": "pattern",
"help_contexts": [
"scheduling.public-participation-blocker",
"scheduling.public-participation",
],
},
),
)