From d8a921f3357f31a7fb1e5b7bd9836a63d0950d6d Mon Sep 17 00:00:00 2001 From: Sarah Vaupel <> Date: Mon, 9 Nov 2020 18:51:06 +0100 Subject: [PATCH] fix(schedule-opt): account for course schedule opt in tutorial opt --- src/Handler/Course/Show.hs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Handler/Course/Show.hs b/src/Handler/Course/Show.hs index b1f33ae5f..80a74b060 100644 --- a/src/Handler/Course/Show.hs +++ b/src/Handler/Course/Show.hs @@ -207,8 +207,16 @@ getCShowR tid ssh csh = do | otherwise -> return mempty tutScheduleOptSet <- if | Just (uid,User{..}) <- mbAuth -> do - mScheduleOpt <- getBy $ UniqueTutorialScheduleOpt tutId uid - let currentOpt = maybe (maybe (isRegistered && userScheduleOccurrenceDisplayDefault) (courseScheduleOptOpt . entityVal) mCourseScheduleOpt) tutorialScheduleOptOpt $ entityVal <$> mScheduleOpt + mTutorialScheduleOpt <- getBy $ UniqueTutorialScheduleOpt tutId uid + let + currentOpt = maybe + ( maybe + (isRegistered && userScheduleOccurrenceDisplayDefault) + ((&&) isRegistered . courseScheduleOptOpt . entityVal) + mCourseScheduleOpt + ) + (tutorialScheduleOptOpt . entityVal) + mTutorialScheduleOpt (tutScheduleForm, tutScheduleEnctype) <- liftHandler . generateFormPost . buttonForm' $ bool [BtnScheduleOptIn] [BtnScheduleOptOut] currentOpt return $ wrapForm tutScheduleForm def { formAction = Just . SomeRoute $ CTutorialR tid ssh csh tutorialName (TScheduleOptSetR $ not currentOpt)