diff --git a/src/Handler/Sheet.hs b/src/Handler/Sheet.hs index 1255a6ceb..bbfcdbd4c 100644 --- a/src/Handler/Sheet.hs +++ b/src/Handler/Sheet.hs @@ -36,24 +36,46 @@ data SheetForm = SheetForm , sfMarkingText :: Maybe Text , sfActiveFrom :: UTCTime , sfActiveTo :: UTCTime - , sfHintFrom :: Maybe UTCTime - , sfSolutionFrom :: Maybe UTCTime , sfSheetF :: Maybe FileInfo + , sfHintFrom :: Maybe UTCTime , sfHintF :: Maybe FileInfo + , sfSolutionFrom :: Maybe UTCTime , sfSolutionF :: Maybe FileInfo } -{- +{- TODO: Problem wih fileAFormOpt makeSheetForm :: CourseId -> Maybe SheetForm -> Form SheetForm makeSheetForm cid template = identForm FIDsheet $ \html -> do - (result, widget) <- flip (renderBootstrap3 bsHorizontalDefault) html $ SheetForm - <$> areq hiddenField "KursId" $ Just cid - <*> areq textField (fsb "Name") (sfName <$> template) - <*> sheetTypeAFormReq (fsb "Bewertung") (sfType <$> template) - <*> aopt textField (fsb "Hinweise zur Bewertung") (sfMarkingText <$> template) - CONTINUE HERE --} - + (result, widget) <- flip (renderBootstrap3 bsHorizontalDefault) html $ SheetForm + <$> areq hiddenField "KursId" $ Just cid + <*> areq textField (fsb "Name") (sfName <$> template) + <*> sheetTypeAFormReq (fsb "Bewertung") (sfType <$> template) + <*> aopt textField (fsb "Hinweise zur Bewertung") (sfMarkingText <$> template) + <*> areq utcTimeField (fsb "Abgabe ab") (sfActiveFrom <$> template) + <*> areq utcTimeField (fsb "Abgabefrist") (sfActiveTo <$> template) + <*> fileAFormOpt (fsb "Aufgaben") + <*> aopt utcTimeField (fsb "Hinweis ab") (sfHintFrom <$> template) + <*> fileAFormOpt (fsb "Hinweis") + <*> aopt utcTimeField (fsb "Lösung ab") (sfSolutionFrom <$> template) + <*> fileAFormOpt (fsb "Lösung") + return $ case result of + FormSuccess sheetResult + | errorMsgs <- validateSheet sheetResult + , not $ null errorMsgs -> + (FormFailure errorMsgs, + [whamlet| +