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)