Problem/Motivation
One of our users could not see any events on the calendar. It turns out her account was set to a different timezone.
Steps to reproduce
Create several events with a Smart Date field, and a Calendar View monthly view.
Set the site timezone to a local timezone.
Set the user's timezone to a different timezone.
That user will not see events on the calendar.
Proposed resolution
When the list of events is calculated from the view, the events are loaded with the user's timezone in CalendarViewBase::populateCalendar, and then set to midnight.
However, the timestamps for the date boxes were previously populated in CalendarViewMonth::buildTable, which does not use the user's timezone.
Then, later in CalendarViewBase::populateCalendar, it does an equality comparison with the two timestamps, which don't match unless they are the same timezone.
Remaining tasks
Change one or the other of these to the same timezone. Or, make the comparison match a range instead of a single timestamp.
User interface changes
None.
API changes
None.
Data model changes
None.