1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-06-26 16:45:52 +00:00

Honor start and end times expand

This commit is contained in:
Pieter Hijma 2024-11-02 21:09:01 +01:00
parent ae274911d5
commit 74f4412761
2 changed files with 16 additions and 3 deletions

View file

@ -303,6 +303,10 @@ def _expand(
# then in the response we return the date, not datetime # then in the response we return the date, not datetime
dt_format = '%Y%m%d' dt_format = '%Y%m%d'
duration = None
if hasattr(item.vobject_item.vevent, "dtend"):
duration = item.vobject_item.vevent.dtend.value - item.vobject_item.vevent.dtstart.value
expanded_item, rruleset = _make_vobject_expanded_item(item, dt_format) expanded_item, rruleset = _make_vobject_expanded_item(item, dt_format)
if rruleset: if rruleset:
@ -319,6 +323,15 @@ def _expand(
name='RECURRENCE-ID', name='RECURRENCE-ID',
value=recurrence_utc.strftime(dt_format), params={} value=recurrence_utc.strftime(dt_format), params={}
) )
vevent.dtstart = ContentLine(
name='DTSTART',
value=recurrence_utc.strftime(dt_format), params={}
)
if duration:
vevent.dtend = ContentLine(
name='DTEND',
value=(recurrence_utc + duration).strftime(dt_format), params={}
)
if is_expanded_filled is False: if is_expanded_filled is False:
expanded.vevent = vevent expanded.vevent = vevent

View file

@ -1715,7 +1715,7 @@ permissions: RrWw""")
recurrence_ids.append(line) recurrence_ids.append(line)
if line.startswith("DTSTART:"): if line.startswith("DTSTART:"):
assert line == "DTSTART:20060102T170000Z" assert line in ["DTSTART:20060103T170000Z", "DTSTART:20060104T170000Z"]
assert len(uids) == 2 assert len(uids) == 2
assert len(set(recurrence_ids)) == 2 assert len(set(recurrence_ids)) == 2
@ -1802,10 +1802,10 @@ permissions: RrWw""")
recurrence_ids.append(line) recurrence_ids.append(line)
if line.startswith("DTSTART:"): if line.startswith("DTSTART:"):
assert line == "DTSTART:20060102" assert line in ["DTSTART:20060103", "DTSTART:20060104", "DTSTART:20060105"]
if line.startswith("DTEND:"): if line.startswith("DTEND:"):
assert line == "DTEND:20060103" assert line in ["DTEND:20060104", "DTEND:20060105", "DTEND:20060106"]
assert len(uids) == 3 assert len(uids) == 3
assert len(set(recurrence_ids)) == 3 assert len(set(recurrence_ids)) == 3