fix(schedule): use local day instead of utc

This commit is contained in:
Gregor Kleen 2020-11-11 18:05:57 +01:00
parent dba0891000
commit 4bc1a8eac0
3 changed files with 36 additions and 10 deletions

View File

@ -11,7 +11,7 @@ import qualified Data.Set as Set
import qualified Database.Esqueleto as E
import Handler.Utils.DateTime (formatTimeRangeW, formatTimeW)
import Handler.Utils.DateTime (formatTimeRangeW, formatTimeW, utcToLocalTime)
import Utils.Schedule
import Utils.Schedule.Types
@ -46,11 +46,8 @@ weekDays now (Entity _ User{userWeekStart}) scheduleOffset = go dayNowOffset
where go d
| dayOfWeek d == firstDay = [d .. addDays 6 d]
| otherwise = go $ pred d
firstDay = toEnum $ fromEnum userWeekStart + dayOffset
dayNowOffset = toInteger dayOffset `addDays` utctDay now
dayOffset = case scheduleOffset of
ScheduleOffsetNone -> 0
ScheduleOffsetDays d -> d
firstDay = toEnum $ fromEnum userWeekStart + offsetInDays scheduleOffset
dayNowOffset = toInteger (offsetInDays scheduleOffset) `addDays` localDay (utcToLocalTime now)
weekSchedule :: UTCTime -> Entity User -> ScheduleOffset -> Widget
@ -58,10 +55,7 @@ weekSchedule now user@(Entity uid User{userScheduleWeekDays = ScheduleWeekDays u
ata <- getSessionActiveAuthTags
let
dayOffset = case scheduleOffset of
ScheduleOffsetNone -> 0
ScheduleOffsetDays d -> d
dayNowOffset = toInteger dayOffset `addDays` utctDay now
dayNowOffset = toInteger (offsetInDays scheduleOffset) `addDays` localDay (utcToLocalTime now)
week = weekDays now user scheduleOffset
-- TODO: single runDB for all fetches below?

View File

@ -78,6 +78,10 @@ extra-deps:
- aeson-1.5.3.0@sha256:05496710de6ae694e55dc77dbdaf7503f56c24e4aecc06045e42e75a02df8bc4,6906
- data-fix-0.3.0@sha256:058a266d1e658500e0ffb8babe68195b0ce06a081dcfc3814afc784b083fd9a5,1645
- strict-0.4@sha256:1b50c7c9c636c3a1bbc7f8873b9be48f6ca0faca4df6eec6a014de6208fb1c0e,4200
- Cabal-3.2.1.0@sha256:8743076ec022296f9771d962000c9ca3a0fe02e68c37b992c63e382a675f791d,27482
- directory-1.3.6.1@sha256:3dc9c69c8e09ec95a7a45c6d06abe0f0d2f604439c37e5f88e5a6c335b088d71,2810
- process-1.6.10.0@sha256:c0d2d8adaca7cea7ceaa60e67b61c775dc03727b83bdb1c97aa8cbeac9f5dd84,2469
- unix-2.7.2.2@sha256:9e93f93cc5a065248120136e83a0a6d1ce93d6eb5ef2a2543f9593e93e164d24,3496
resolver: nightly-2020-08-08
compiler: ghc-8.10.2

View File

@ -380,6 +380,34 @@ packages:
sha256: fdf523b8990567d69277b999d68d492ed0b3a98a89b1acdfb3087e3b95eb9908
original:
hackage: strict-0.4@sha256:1b50c7c9c636c3a1bbc7f8873b9be48f6ca0faca4df6eec6a014de6208fb1c0e,4200
- completed:
hackage: Cabal-3.2.1.0@sha256:8743076ec022296f9771d962000c9ca3a0fe02e68c37b992c63e382a675f791d,27482
pantry-tree:
size: 41224
sha256: 92682a2aab8d967de341acff88525376eb9a31f53f094e0878c51c2886564f3a
original:
hackage: Cabal-3.2.1.0@sha256:8743076ec022296f9771d962000c9ca3a0fe02e68c37b992c63e382a675f791d,27482
- completed:
hackage: directory-1.3.6.1@sha256:3dc9c69c8e09ec95a7a45c6d06abe0f0d2f604439c37e5f88e5a6c335b088d71,2810
pantry-tree:
size: 3433
sha256: 9247d0e7cfbf9946b922d23bd56a6b765cdb91f71d72f8ae6ed22c94dbd9f1db
original:
hackage: directory-1.3.6.1@sha256:3dc9c69c8e09ec95a7a45c6d06abe0f0d2f604439c37e5f88e5a6c335b088d71,2810
- completed:
hackage: process-1.6.10.0@sha256:c0d2d8adaca7cea7ceaa60e67b61c775dc03727b83bdb1c97aa8cbeac9f5dd84,2469
pantry-tree:
size: 1211
sha256: 6e90778b5105753d7de0f7a0c502dadf8f04825f17a36186aa801e56ef7ca206
original:
hackage: process-1.6.10.0@sha256:c0d2d8adaca7cea7ceaa60e67b61c775dc03727b83bdb1c97aa8cbeac9f5dd84,2469
- completed:
hackage: unix-2.7.2.2@sha256:9e93f93cc5a065248120136e83a0a6d1ce93d6eb5ef2a2543f9593e93e164d24,3496
pantry-tree:
size: 3536
sha256: 0b54bf49636d2a8c06e28315710e4437e001e05b4523d6e3cb083ba2426a38b2
original:
hackage: unix-2.7.2.2@sha256:9e93f93cc5a065248120136e83a0a6d1ce93d6eb5ef2a2543f9593e93e164d24,3496
snapshots:
- completed:
size: 524392