feat(schedule-week): use userWeekStart in weekly schedule
This commit is contained in:
parent
0c9671b3d9
commit
145564cf77
@ -25,18 +25,18 @@ import Utils.Schedule.Week
|
||||
|
||||
getNewsR :: Handler Html
|
||||
getNewsR = do
|
||||
muid <- maybeAuthId
|
||||
mUser <- maybeAuth
|
||||
defaultLayout $ do
|
||||
setTitleI MsgNewsHeading
|
||||
|
||||
newsSystemMessages
|
||||
|
||||
when (is _Nothing muid) $
|
||||
when (is _Nothing mUser) $
|
||||
notificationWidget NotificationBroad Info $(i18nWidgetFile "pitch")
|
||||
|
||||
case muid of
|
||||
Just uid -> do
|
||||
newsSchedule uid
|
||||
case mUser of
|
||||
Just user@(Entity uid _) -> do
|
||||
newsSchedule user
|
||||
newsUpcomingExams uid
|
||||
newsUpcomingSheets uid
|
||||
Nothing ->
|
||||
@ -89,8 +89,8 @@ newsSystemMessages = do
|
||||
|
||||
|
||||
-- TODO: deprecated; update once ScheduleR is finished
|
||||
newsSchedule :: UserId -> Widget
|
||||
newsSchedule uid = let schedule = weekSchedule uid ScheduleOffsetNone in $(widgetFile "news/schedule")
|
||||
newsSchedule :: Entity User -> Widget
|
||||
newsSchedule user = let schedule = weekSchedule user ScheduleOffsetNone in $(widgetFile "news/schedule")
|
||||
|
||||
|
||||
newsUpcomingSheets :: UserId -> Widget
|
||||
|
||||
@ -13,7 +13,7 @@ import Utils.Schedule.Week
|
||||
getScheduleR, postScheduleR :: Handler Html
|
||||
getScheduleR = postScheduleR
|
||||
postScheduleR = do
|
||||
Entity uid User{userScheduleView} <- requireAuth
|
||||
user@(Entity _uid User{userScheduleView}) <- requireAuth
|
||||
|
||||
-- TODO: local instead of global get params?
|
||||
mOptions <- lookupGlobalGetParam GetScheduleOptions
|
||||
@ -94,7 +94,7 @@ postScheduleR = do
|
||||
((optionsRes, optionsWidget), optionsEnctype) <- runFormGet scheduleOptionsForm
|
||||
|
||||
schedule <- case optionsRes of
|
||||
FormSuccess ScheduleOptions{scheduleView=ScheduleViewWeek,..} -> return $ weekSchedule uid scheduleOffset
|
||||
FormSuccess ScheduleOptions{scheduleView=ScheduleViewWeek,..} -> return $ weekSchedule user scheduleOffset
|
||||
other -> formFailure2Alerts other >> return mempty
|
||||
|
||||
siteLayoutMsg MsgMenuSchedule $ do
|
||||
|
||||
@ -18,8 +18,8 @@ import Utils.Schedule.Types
|
||||
import Utils.Schedule.Week.TimeSlot
|
||||
|
||||
|
||||
weekSchedule :: UserId -> ScheduleOffset -> Widget
|
||||
weekSchedule uid scheduleOffset = do
|
||||
weekSchedule :: Entity User -> ScheduleOffset -> Widget
|
||||
weekSchedule (Entity uid User{userWeekStart}) scheduleOffset = do
|
||||
now <- liftIO getCurrentTime
|
||||
tz <- liftIO getCurrentTimeZone
|
||||
ata <- getSessionActiveAuthTags
|
||||
@ -112,14 +112,13 @@ weekSchedule uid scheduleOffset = do
|
||||
_ -> True
|
||||
in filter isRegularWithoutException occurrencesInSlot
|
||||
|
||||
-- TODO: Internationalize default week start (and/or make configurable)
|
||||
-- TODO: auto-hide saturday and sunday (if there are no events scheduled)?
|
||||
week :: [Day]
|
||||
week = go dayNowOffset
|
||||
where go d
|
||||
| dayOfWeek d == firstDay = [d .. toEnum (fromEnum d + 6)]
|
||||
| otherwise = go $ pred d
|
||||
firstDay = toEnum $ fromEnum Monday + dayOffset
|
||||
firstDay = toEnum $ fromEnum userWeekStart + dayOffset
|
||||
|
||||
-- TODO: make this configurable
|
||||
timeSlotsDefaultDisplay :: Set TimeSlot
|
||||
|
||||
Reference in New Issue
Block a user