Files
Radicale/radicale/tests/static
TowyTowy 0e15021c11 Fix: time-range filter on VTODO with DTSTART/DUE and CREATED/COMPLETED
visit_time_ranges() reuses a single "original_duration" variable for two
unrelated purposes: the DTSTART->DUE span and the CREATED->COMPLETED span.
When a VTODO carries all four properties (a completed task, which most
clients write with CREATED and COMPLETED), the second assignment clobbers
the first, and the DTSTART/DUE branch of the rfc4791-9.9 table then
reconstructs DUE as DTSTART + (COMPLETED - CREATED).

The elif chain already implements the RFC table correctly (DTSTART/DUE
take precedence over CREATED/COMPLETED), so the CREATED/COMPLETED value
is never wanted there. Keep it in its own variable.

Effect: such a VTODO is filtered against a bogus interval, both in
calendar-query REPORT and in item.find_time_range() (the enclosing range
cached for the storage prefilter), so completed tasks go missing from -
or wrongly appear in - client results.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-04 20:05:04 +02:00
..
2018-09-04 03:33:45 +02:00
2026-08-02 15:16:22 +02:00
2026-04-10 08:33:57 +02:00
2016-07-08 11:38:09 +02:00
2016-07-07 14:30:10 +02:00
2016-07-07 14:30:10 +02:00
2016-07-07 14:30:10 +02:00
2017-08-03 19:47:00 +02:00
2024-08-14 05:43:53 -06:00
2025-09-24 21:17:13 +02:00
2025-09-24 21:17:13 +02:00
2025-09-24 21:17:13 +02:00
2026-01-22 21:36:07 +01:00
2026-06-06 23:18:47 +02:00
2025-12-11 23:14:08 +01:00
2016-07-07 14:30:10 +02:00
2016-07-07 14:30:10 +02:00
2016-07-07 14:30:10 +02:00
2016-07-07 14:30:10 +02:00
2018-09-04 03:33:45 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2020-09-26 22:08:22 +02:00
2016-07-07 14:30:10 +02:00
2017-06-06 20:01:09 +02:00
2017-06-06 20:01:09 +02:00
2017-06-06 20:01:09 +02:00
2017-06-06 20:01:09 +02:00
2017-06-06 20:01:09 +02:00
2017-06-06 20:01:09 +02:00
2017-06-06 20:01:09 +02:00
2025-05-16 06:33:22 +02:00
2025-05-16 06:33:22 +02:00