Skip to content

Commit

Permalink
Honor start and end times expand
Browse files Browse the repository at this point in the history
  • Loading branch information
pieterhijma committed Nov 7, 2024
1 parent ae27491 commit 74f4412
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
13 changes: 13 additions & 0 deletions radicale/app/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,10 @@ def _expand(
# then in the response we return the date, not datetime
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)

if rruleset:
Expand All @@ -319,6 +323,15 @@ def _expand(
name='RECURRENCE-ID',
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:
expanded.vevent = vevent
Expand Down
6 changes: 3 additions & 3 deletions radicale/tests/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1715,7 +1715,7 @@ def test_report_with_expand_property(self) -> None:
recurrence_ids.append(line)

if line.startswith("DTSTART:"):
assert line == "DTSTART:20060102T170000Z"
assert line in ["DTSTART:20060103T170000Z", "DTSTART:20060104T170000Z"]

assert len(uids) == 2
assert len(set(recurrence_ids)) == 2
Expand Down Expand Up @@ -1802,10 +1802,10 @@ def test_report_with_expand_property_all_day_event(self) -> None:
recurrence_ids.append(line)

if line.startswith("DTSTART:"):
assert line == "DTSTART:20060102"
assert line in ["DTSTART:20060103", "DTSTART:20060104", "DTSTART:20060105"]

if line.startswith("DTEND:"):
assert line == "DTEND:20060103"
assert line in ["DTEND:20060104", "DTEND:20060105", "DTEND:20060106"]

assert len(uids) == 3
assert len(set(recurrence_ids)) == 3
Expand Down

0 comments on commit 74f4412

Please sign in to comment.