mirror of
https://github.com/Kozea/Radicale.git
synced 2025-08-07 18:30:54 +00:00
try applying timerange-filter on VCALENDAR entries
This commit is contained in:
parent
18a61f209d
commit
41ac453eb7
1 changed files with 11 additions and 0 deletions
|
@ -144,13 +144,24 @@ def comp_match(item: "item.Item", filter_: ET.Element, level: int = 0) -> bool:
|
||||||
trigger = subcomp.trigger.value
|
trigger = subcomp.trigger.value
|
||||||
for child in filter_:
|
for child in filter_:
|
||||||
if child.tag == xmlutils.make_clark("C:prop-filter"):
|
if child.tag == xmlutils.make_clark("C:prop-filter"):
|
||||||
|
logger.debug("TRACE/ITEM/FILTER/comp_match: prop-filter level=%d", level)
|
||||||
if not any(prop_match(comp, child, "C")
|
if not any(prop_match(comp, child, "C")
|
||||||
for comp in components):
|
for comp in components):
|
||||||
return False
|
return False
|
||||||
elif child.tag == xmlutils.make_clark("C:time-range"):
|
elif child.tag == xmlutils.make_clark("C:time-range"):
|
||||||
|
logger.debug("TRACE/ITEM/FILTER/comp_match: time-range level=%d tag=%s", level, tag)
|
||||||
|
if (level == 0) and (name == "VCALENDAR"):
|
||||||
|
for name_try in ("VTODO", "VEVENT", "VJOURNAL"):
|
||||||
|
try:
|
||||||
|
if time_range_match(item.vobject_item, filter_[0], name_try, trigger):
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
continue
|
||||||
|
return False
|
||||||
if not time_range_match(item.vobject_item, filter_[0], tag, trigger):
|
if not time_range_match(item.vobject_item, filter_[0], tag, trigger):
|
||||||
return False
|
return False
|
||||||
elif child.tag == xmlutils.make_clark("C:comp-filter"):
|
elif child.tag == xmlutils.make_clark("C:comp-filter"):
|
||||||
|
logger.debug("TRACE/ITEM/FILTER/comp_match: comp-filter level=%d", level)
|
||||||
if not comp_match(item, child, level=level + 1):
|
if not comp_match(item, child, level=level + 1):
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue