Skip to content

Handle completion of todos in distant time zones

The Month view displays todos on their due dates in the local time zone; a todo due on the 23rd at 06:00 Asia/Tokyo time is displayed on the 22nd if the local time zone is UTC or further west.

IncidenceMonthItem::icons() used the local date to calculate an occurrence date for occurrences of recurring todos, without considering time zones, to decide whether to draw a "completed" icon. This can fail.

Example:

  • start 2022-09-22 06:00 Asia/Tokyo
  • due 2022-09-23 07:00 Asia/Tokyo
  • repeat daily, 3 times. (Occurrences overlap.)
  • use the Todo view to complete it once.

The Month view does not display any "completed" icons.

This patch uses a previously-computed offset between the occurrence and the todo's start.

Merge request reports