Implement Open-Xchange calendar profiles

This commit is contained in:
2026-08-02 05:59:06 +02:00
parent 66a6df4f05
commit 4e05ab2c3e
11 changed files with 476 additions and 23 deletions
+20
View File
@@ -3654,6 +3654,26 @@ def mark_calendar_sync_source(calendar: CalendarCollection, source: CalendarSync
metadata["sync_source_id"] = source.id
metadata["sync_href"] = source.collection_url
metadata["sync_direction"] = source.sync_direction
source_metadata = source.metadata_ if isinstance(source.metadata_, dict) else {}
if source_metadata.get("integration_profile") == "open_xchange":
for key in (
"integration_profile",
"transport_kind",
"connector_profile_ref",
"identity_mapping_ref",
"resource_calendar_ref",
):
if source_metadata.get(key):
metadata[key] = source_metadata[key]
else:
metadata.pop(key, None)
resource_ref = source_metadata.get("resource_calendar_ref")
if resource_ref:
calendar.owner_type = "resource"
calendar.owner_id = str(resource_ref)
elif calendar.owner_type == "resource":
calendar.owner_type = "tenant"
calendar.owner_id = None
calendar.metadata_ = metadata