Divide sheetForm into sections
This commit is contained in:
parent
9f101087ac
commit
813d446975
@ -169,6 +169,7 @@ SheetHintFrom: Hinweis ab
|
|||||||
SheetSolution: Lösung
|
SheetSolution: Lösung
|
||||||
SheetSolutionFrom: Lösung ab
|
SheetSolutionFrom: Lösung ab
|
||||||
SheetMarking: Hinweise für Korrektoren
|
SheetMarking: Hinweise für Korrektoren
|
||||||
|
SheetMarkingFiles: Korrektur
|
||||||
SheetType: Wertung
|
SheetType: Wertung
|
||||||
SheetInvisible: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar!
|
SheetInvisible: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar!
|
||||||
SheetInvisibleUntil date@Text: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar bis #{date}!
|
SheetInvisibleUntil date@Text: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar bis #{date}!
|
||||||
@ -186,6 +187,10 @@ SheetMarkingTip: Hinweise zur Korrektur, sichtbar nur für Korrektoren
|
|||||||
SheetPseudonym: Persönliches Abgabe-Pseudonym
|
SheetPseudonym: Persönliches Abgabe-Pseudonym
|
||||||
SheetGeneratePseudonym: Generieren
|
SheetGeneratePseudonym: Generieren
|
||||||
|
|
||||||
|
SheetFormType: Wertung & Abgabe
|
||||||
|
SheetFormTimes: Zeiten
|
||||||
|
SheetFormFiles: Dateien
|
||||||
|
|
||||||
SheetErrVisibility: "Beginn Abgabezeitraum" muss nach "Sichbar für Teilnehmer ab" liegen
|
SheetErrVisibility: "Beginn Abgabezeitraum" muss nach "Sichbar für Teilnehmer ab" liegen
|
||||||
SheetErrDeadlineEarly: "Ende Abgabezeitraum" muss nach "Beginn Abzeitraum" liegen
|
SheetErrDeadlineEarly: "Ende Abgabezeitraum" muss nach "Beginn Abzeitraum" liegen
|
||||||
SheetErrHintEarly: Hinweise dürfen erst nach Beginn des Abgabezeitraums herausgegeben werden
|
SheetErrHintEarly: Hinweise dürfen erst nach Beginn des Abgabezeitraums herausgegeben werden
|
||||||
|
|||||||
@ -68,19 +68,19 @@ import Text.Hamlet (ihamlet)
|
|||||||
|
|
||||||
data SheetForm = SheetForm
|
data SheetForm = SheetForm
|
||||||
{ sfName :: SheetName
|
{ sfName :: SheetName
|
||||||
, sfDescription :: Maybe Html
|
|
||||||
, sfType :: SheetType
|
|
||||||
, sfGrouping :: SheetGroup
|
|
||||||
, sfVisibleFrom :: Maybe UTCTime
|
, sfVisibleFrom :: Maybe UTCTime
|
||||||
, sfActiveFrom :: UTCTime
|
, sfActiveFrom :: UTCTime
|
||||||
, sfActiveTo :: UTCTime
|
, sfActiveTo :: UTCTime
|
||||||
, sfSubmissionMode :: SubmissionMode
|
|
||||||
, sfSheetF :: Maybe (Source Handler (Either FileId File))
|
|
||||||
, sfHintFrom :: Maybe UTCTime
|
, sfHintFrom :: Maybe UTCTime
|
||||||
, sfHintF :: Maybe (Source Handler (Either FileId File))
|
|
||||||
, sfSolutionFrom :: Maybe UTCTime
|
, sfSolutionFrom :: Maybe UTCTime
|
||||||
|
, sfSheetF :: Maybe (Source Handler (Either FileId File))
|
||||||
|
, sfHintF :: Maybe (Source Handler (Either FileId File))
|
||||||
, sfSolutionF :: Maybe (Source Handler (Either FileId File))
|
, sfSolutionF :: Maybe (Source Handler (Either FileId File))
|
||||||
, sfMarkingF :: Maybe (Source Handler (Either FileId File))
|
, sfMarkingF :: Maybe (Source Handler (Either FileId File))
|
||||||
|
, sfType :: SheetType
|
||||||
|
, sfGrouping :: SheetGroup
|
||||||
|
, sfSubmissionMode :: SubmissionMode
|
||||||
|
, sfDescription :: Maybe Html
|
||||||
, sfMarkingText :: Maybe Html
|
, sfMarkingText :: Maybe Html
|
||||||
-- Keine SheetId im Formular!
|
-- Keine SheetId im Formular!
|
||||||
}
|
}
|
||||||
@ -102,12 +102,7 @@ makeSheetForm msId template = identifyForm FIDsheet $ \html -> do
|
|||||||
ctime <- ceilingQuarterHour <$> liftIO getCurrentTime
|
ctime <- ceilingQuarterHour <$> liftIO getCurrentTime
|
||||||
(result, widget) <- flip (renderAForm FormStandard) html $ SheetForm
|
(result, widget) <- flip (renderAForm FormStandard) html $ SheetForm
|
||||||
<$> areq ciField (fslI MsgSheetName) (sfName <$> template)
|
<$> areq ciField (fslI MsgSheetName) (sfName <$> template)
|
||||||
<*> aopt htmlField (fslpI MsgSheetDescription "Html")
|
<* aformSection MsgSheetFormTimes
|
||||||
(sfDescription <$> template)
|
|
||||||
<*> sheetTypeAFormReq (fslI MsgSheetType
|
|
||||||
& setTooltip (uniworxMessages [MsgSheetTypeInfoBonus,MsgSheetTypeInfoNotGraded]))
|
|
||||||
(sfType <$> template)
|
|
||||||
<*> sheetGroupAFormReq (fslI MsgSheetGroup) (sfGrouping <$> template)
|
|
||||||
<*> aopt utcTimeField (fslI MsgSheetVisibleFrom
|
<*> aopt utcTimeField (fslI MsgSheetVisibleFrom
|
||||||
& setTooltip MsgSheetVisibleFromTip)
|
& setTooltip MsgSheetVisibleFromTip)
|
||||||
((sfVisibleFrom <$> template) <|> pure (Just ctime))
|
((sfVisibleFrom <$> template) <|> pure (Just ctime))
|
||||||
@ -115,17 +110,24 @@ makeSheetForm msId template = identifyForm FIDsheet $ \html -> do
|
|||||||
& setTooltip MsgSheetActiveFromTip)
|
& setTooltip MsgSheetActiveFromTip)
|
||||||
(sfActiveFrom <$> template)
|
(sfActiveFrom <$> template)
|
||||||
<*> areq utcTimeField (fslI MsgSheetActiveTo) (sfActiveTo <$> template)
|
<*> areq utcTimeField (fslI MsgSheetActiveTo) (sfActiveTo <$> template)
|
||||||
<*> submissionModeForm ((sfSubmissionMode <$> template) <|> pure (SubmissionMode False . Just $ UploadAny True defaultExtensionRestriction))
|
|
||||||
<*> aopt (multiFileField $ oldFileIds SheetExercise) (fslI MsgSheetExercise) (sfSheetF <$> template)
|
|
||||||
<*> aopt utcTimeField (fslpI MsgSheetHintFrom "Datum, sonst nur für Korrektoren"
|
<*> aopt utcTimeField (fslpI MsgSheetHintFrom "Datum, sonst nur für Korrektoren"
|
||||||
& setTooltip MsgSheetHintFromTip) (sfHintFrom <$> template)
|
& setTooltip MsgSheetHintFromTip) (sfHintFrom <$> template)
|
||||||
<*> aopt (multiFileField $ oldFileIds SheetHint) (fslI MsgSheetHint) (sfHintF <$> template)
|
|
||||||
<*> aopt utcTimeField (fslpI MsgSheetSolutionFrom "Datum, sonst nur für Korrektoren"
|
<*> aopt utcTimeField (fslpI MsgSheetSolutionFrom "Datum, sonst nur für Korrektoren"
|
||||||
& setTooltip MsgSheetSolutionFromTip)
|
& setTooltip MsgSheetSolutionFromTip) (sfSolutionFrom <$> template)
|
||||||
(sfSolutionFrom <$> template)
|
<* aformSection MsgSheetFormFiles
|
||||||
|
<*> aopt (multiFileField $ oldFileIds SheetExercise) (fslI MsgSheetExercise) (sfSheetF <$> template)
|
||||||
|
<*> aopt (multiFileField $ oldFileIds SheetHint) (fslI MsgSheetHint) (sfHintF <$> template)
|
||||||
<*> aopt (multiFileField $ oldFileIds SheetSolution) (fslI MsgSheetSolution) (sfSolutionF <$> template)
|
<*> aopt (multiFileField $ oldFileIds SheetSolution) (fslI MsgSheetSolution) (sfSolutionF <$> template)
|
||||||
<*> aopt (multiFileField $ oldFileIds SheetMarking) (fslI MsgSheetMarking
|
<*> aopt (multiFileField $ oldFileIds SheetMarking) (fslI MsgSheetMarkingFiles
|
||||||
& setTooltip MsgSheetMarkingTip) (sfMarkingF <$> template)
|
& setTooltip MsgSheetMarkingTip) (sfMarkingF <$> template)
|
||||||
|
<* aformSection MsgSheetFormType
|
||||||
|
<*> sheetTypeAFormReq (fslI MsgSheetType
|
||||||
|
& setTooltip (uniworxMessages [MsgSheetTypeInfoBonus,MsgSheetTypeInfoNotGraded]))
|
||||||
|
(sfType <$> template)
|
||||||
|
<*> sheetGroupAFormReq (fslI MsgSheetGroup) (sfGrouping <$> template)
|
||||||
|
<*> submissionModeForm ((sfSubmissionMode <$> template) <|> pure (SubmissionMode False . Just $ UploadAny True defaultExtensionRestriction))
|
||||||
|
<*> aopt htmlField (fslpI MsgSheetDescription "Html")
|
||||||
|
(sfDescription <$> template)
|
||||||
<*> aopt htmlField (fslpI MsgSheetMarking "Html") (sfMarkingText <$> template)
|
<*> aopt htmlField (fslpI MsgSheetMarking "Html") (sfMarkingText <$> template)
|
||||||
return $ case result of
|
return $ case result of
|
||||||
FormSuccess sheetResult
|
FormSuccess sheetResult
|
||||||
|
|||||||
@ -546,6 +546,9 @@ idFormSectionNoinput = "form-section-noinput"
|
|||||||
aformSection :: (MonadHandler m, site ~ HandlerSite m, RenderMessage site msg) => msg -> AForm m ()
|
aformSection :: (MonadHandler m, site ~ HandlerSite m, RenderMessage site msg) => msg -> AForm m ()
|
||||||
aformSection = formToAForm . fmap (second pure) . formSection
|
aformSection = formToAForm . fmap (second pure) . formSection
|
||||||
|
|
||||||
|
wformSection :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => msg -> WForm m ()
|
||||||
|
wformSection = void . aFormToWForm . aformSection
|
||||||
|
|
||||||
formSection :: (MonadHandler m, site ~ HandlerSite m, RenderMessage site msg) => msg -> MForm m (FormResult (), FieldView site) -- TODO: WIP, delete
|
formSection :: (MonadHandler m, site ~ HandlerSite m, RenderMessage site msg) => msg -> MForm m (FormResult (), FieldView site) -- TODO: WIP, delete
|
||||||
formSection formSectionTitle = do
|
formSection formSectionTitle = do
|
||||||
mr <- getMessageRender
|
mr <- getMessageRender
|
||||||
|
|||||||
Reference in New Issue
Block a user