feat: promote calendar to a stable product destination
Module Package Release / publish-packages (push) Successful in 13s

This commit is contained in:
2026-08-24 17:58:27 +02:00
parent 3792e9ab8a
commit 3e5fc05ca3
6 changed files with 42 additions and 12 deletions
+1 -1
View File
@@ -2,4 +2,4 @@
__all__ = ["__version__"]
__version__ = "0.1.22"
__version__ = "0.1.23"
+32 -3
View File
@@ -39,7 +39,9 @@ from govoplan_core.core.modules import (
ModuleManifest,
NavItem,
PermissionDefinition,
ProductAvailabilityExplanation,
ProductAreaContribution,
ProductSurfaceContribution,
QuickAccessTool,
RoleTemplate,
)
@@ -618,7 +620,7 @@ def _open_xchange_provider_states(context):
manifest = ModuleManifest(
id="calendar",
name="Calendar",
version="0.1.22",
version="0.1.23",
required_capabilities=(
CAPABILITY_AUTH_PRINCIPAL_RESOLVER,
CAPABILITY_AUTH_PERMISSION_EVALUATOR,
@@ -779,7 +781,8 @@ manifest = ModuleManifest(
title="Calendar in product navigation and Quick Access",
summary="Use Calendar in Meetings and decisions and keep an optional compact agenda beside current work.",
body=(
"Calendar contributes its workspace to Meetings and decisions. When Quick Access is enabled, "
"Calendar contributes its workspace to the stable Calendar destination at /agenda in Meetings and decisions. "
"The owner route /calendar remains available through All available tools and as a compatible deep link. When Quick Access is enabled, "
"the owner-rendered agenda shows at most seven authorized events across the current or explicitly selected temporal "
"context and links to the full workspace. Event selection returns a typed Calendar reference; accounts with event-write "
"permission can launch the full owner-rendered creation dialog at that date. Calendar rechecks tenant, scope, private "
@@ -795,7 +798,8 @@ manifest = ModuleManifest(
"title": "Kalender in Produktnavigation und Schnellzugriff",
"summary": "Den Kalender unter Termine und Entscheidungen sowie optional als kompakte Agenda neben der aktuellen Arbeit verwenden.",
"body": (
"Calendar ordnet seinen Arbeitsbereich Termine und Entscheidungen zu. Ist der Schnellzugriff aktiviert, "
"Calendar ordnet seinen Arbeitsbereich dem stabilen Produktziel Kalender unter /agenda in Termine und Entscheidungen zu. "
"Der Eigentümerpfad /calendar bleibt unter Alle verfügbaren Werkzeuge und als kompatibler Direktlink erreichbar. Ist der Schnellzugriff aktiviert, "
"zeigt die vom Kalender gerenderte Agenda höchstens sieben berechtigte Termine im aktuellen oder ausdrücklich "
"gewählten Zeitkontext. Die Terminauswahl liefert eine typisierte Kalenderreferenz; mit Schreibberechtigung lässt "
"sich der vollständige Termineditor für dieses Datum öffnen. Calendar prüft Mandant, Berechtigung, private "
@@ -1169,6 +1173,31 @@ manifest = ModuleManifest(
order=50,
),
),
product_surfaces=(
ProductSurfaceContribution(
id="meetings.calendar",
module_id="calendar",
label="i18n:govoplan-core.product_surface.calendar",
description="i18n:govoplan-core.product_surface.calendar_description",
icon="calendar",
entry_path="/agenda",
route_path="/calendar",
surface_ids=("calendar.nav.calendar", "calendar.route.calendar"),
presentations=("task", "reader"),
search_source_ids=("calendar.events",),
help_context_ids=("calendar.page",),
documentation_topic_ids=("calendar.quick-access-and-product-area",),
required_any=("calendar:event:read",),
order=10,
unavailable=ProductAvailabilityExplanation(
reason="authorization",
title="i18n:govoplan-core.product_surface.unavailable",
description="i18n:govoplan-core.product_surface.unavailable_description",
resolution="i18n:govoplan-core.product_surface.unavailable_resolution",
responsible_role="i18n:govoplan-core.access_administrator",
),
),
),
quick_access_tools=(
QuickAccessTool(
id="calendar.agenda",