SparkDevNetwork / Rock

An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
http://www.rockrms.com
581 stars 353 forks source link

Obsidian Grid Is Not Handling Dates Correctly In DST-Observing Timezones #6060

Closed JimMichael closed 2 weeks ago

JimMichael commented 3 weeks ago

Description

We are experiencing a weird issue where filtering a Date column on an Obsidian Grid (in our case, we noticed it on the Obsidian Financial Batch List block) returns incorrect results IF the client machine is in a Timezone that observes DST AND the end date of a "between" filter falls on a "DST change Sunday."

Actual Behavior

On the Batches page, when we tried to filter Financial Batches "between 2024-10-28 and 2024-11-03" we noticed three batches missing that SHOULD have been returned in that date range, and all had a BatchStartDateTime of 2024-11-03 (note that November 3, 2024 was the Fall Time Change Sunday.)

However, changing the client from Central (UTC-6:00) to Arizona (UTC-7:00) and NOT changing the grid filter at all immediately lets it return those missing batches.

Expected Behavior

Obsidian Grid would handle date ranges correctly regardless of the Time Zone of the client.

Steps to Reproduce

  1. On Demo, create a new Financial Batch and give it a Batch Start of 11/3 and a Batch End of 11/3 (the end doesn't really affect this.)

  2. Filter the grid for "between 2024-11-01 and 2024-11-03" (the important thing is the End Date is 11/3/2024, a time change Sunday)

  3. Depending on your client's Time Zone setting, you will either see the batch (Arizona timezone) or NOT see the batch (Central timezone), even though it should show up regardless of your timezone as it's within the defined filter range.

We have a sneaky suspicion this is related to these other Issues that are eerily similar: https://github.com/SparkDevNetwork/Rock/issues/5801 https://github.com/SparkDevNetwork/Rock/issues/6059

Issue Confirmation

Rock Version

1.16.6.9, 1.16.7.2

Client Culture Setting

en-US

JimMichael commented 2 weeks ago

Just updating that this APPEARS to not be an issue in 1.16.7.2 as originally described. The fact that Obsidian JS gets cached by the client (and thus can cause some REALLY weird behavior when you're rapidly applying a new version, rolling back to then apply another new version, etc) was clouding the issue when we tried it on 1.16.7.2.

I re-ran a fresh upgrade from 1.16.6.9 to 1.16.7.2, had to shift-refresh the batch list page, and the problem was gone.

kylehenning commented 2 weeks ago

Thanks for the update @JimMichael!

This issue has been fixed in 1.16.7 with the commit a262801.