From f4a87afab7b08e0eebe3e9f66b40f2ada7499730 Mon Sep 17 00:00:00 2001 From: "trougnouf (Benoit Brummer)" Date: Tue, 19 Jul 2022 00:15:33 +0200 Subject: [PATCH] fix #715 (Main Component is missing when only recurrence id exists) with balrok's patch --- radicale/item/filter.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/radicale/item/filter.py b/radicale/item/filter.py index 587dc367..217f503c 100644 --- a/radicale/item/filter.py +++ b/radicale/item/filter.py @@ -225,6 +225,7 @@ def visit_time_ranges(vobject_item: vobject.base.Component, child_name: str, def get_children(components: Iterable[vobject.base.Component]) -> Iterator[ Tuple[vobject.base.Component, bool, List[date]]]: main = None + rec_main = None recurrences = [] for comp in components: if hasattr(comp, "recurrence_id") and comp.recurrence_id.value: @@ -232,11 +233,14 @@ def visit_time_ranges(vobject_item: vobject.base.Component, child_name: str, if comp.rruleset: # Prevent possible infinite loop raise ValueError("Overwritten recurrence with RRULESET") + rec_main = comp yield comp, True, [] else: if main is not None: raise ValueError("Multiple main components") main = comp + if main is None and len(recurrences) == 1: + main = rec_main if main is None: raise ValueError("Main component missing") yield main, False, recurrences