From a29255f87c057bf37a2970cc6ae79875641b8348 Mon Sep 17 00:00:00 2001 From: SJost Date: Thu, 6 Sep 2018 13:37:02 +0200 Subject: [PATCH] Minor cleaning: Handler/Utils/Term removed --- src/Handler/Term.hs | 30 ++++++++++++++++++++ src/Handler/Utils.hs | 1 - src/Handler/Utils/Form.hs | 22 ++++++++++++++- src/Handler/Utils/Term.hs | 59 --------------------------------------- src/index.md | 3 -- 5 files changed, 51 insertions(+), 64 deletions(-) delete mode 100644 src/Handler/Utils/Term.hs diff --git a/src/Handler/Term.hs b/src/Handler/Term.hs index f02a6f9a8..c14b796eb 100644 --- a/src/Handler/Term.hs +++ b/src/Handler/Term.hs @@ -21,6 +21,36 @@ import Yesod.Form.Bootstrap3 import qualified Database.Esqueleto as E + + +validateTerm :: Term -> [Text] +validateTerm (Term{..}) = + [ msg | (False, msg) <- + [ --startOk + ( termStart `withinTerm` termName + , "Jahreszahl im Namenskürzel stimmt nicht mit Semesterbeginn überein." + ) + , -- endOk + ( termStart < termEnd + , "Semester darf nicht enden, bevor es begann." + ) + , -- startOk + ( termLectureStart < termLectureEnd + , "Vorlesungszeit muss vor ihrem Ende anfgangen." + ) + , -- lecStartOk + ( termStart <= termLectureStart + , "Semester muss vor der Vorlesungszeit beginnen." + ) + , -- lecEndOk + ( termEnd >= termLectureEnd + , "Vorlesungszeit muss vor dem Semester enden." + ) + ] ] + + + + getTermShowR :: Handler TypedContent getTermShowR = do -- terms <- runDB $ selectList [] [Desc TermStart] diff --git a/src/Handler/Utils.hs b/src/Handler/Utils.hs index 284e31fcf..d9710c119 100644 --- a/src/Handler/Utils.hs +++ b/src/Handler/Utils.hs @@ -12,7 +12,6 @@ module Handler.Utils import Import import Handler.Utils.DateTime as Handler.Utils -import Handler.Utils.Term as Handler.Utils import Handler.Utils.Form as Handler.Utils import Handler.Utils.Table as Handler.Utils import Handler.Utils.Table.Pagination as Handler.Utils diff --git a/src/Handler/Utils/Form.hs b/src/Handler/Utils/Form.hs index d15febb46..e1fab772b 100644 --- a/src/Handler/Utils/Form.hs +++ b/src/Handler/Utils/Form.hs @@ -218,7 +218,27 @@ pointsField = checkBool (>= 0) MsgPointsNotPositive Field{..} sci <- maybe (Left $ MsgInvalidNumber t) Right (readMaybe $ unpack t :: Maybe Scientific) return . fromRational $ round (sci * 100) % 100 ---termField: see Utils.Term + +termActiveField :: Field Handler TermId +termActiveField = selectField $ optionsPersistKey [TermActive ==. True] [Desc TermStart] termName + +termActiveOld :: Field Handler TermIdentifier +termActiveOld = convertField unTermKey TermKey $ selectField $ optionsPersistKey [TermActive ==. True] [Desc TermStart] termName + +termNewField :: Field Handler TermIdentifier +termNewField = checkMMap checkTerm termToText textField + where + errTextParse :: Text + errTextParse = "Semester: S oder W gefolgt von Jahreszahl" + + errTextFreigabe :: TermIdentifier -> Text + errTextFreigabe ti = "Semester " `T.append` (termToText ti) `T.append` " wurde noch nicht freigegeben." + + checkTerm :: Text -> HandlerT UniWorX IO (Either Text TermIdentifier) + checkTerm t = case termFromText t of + Left _ -> return $ Left errTextParse + res@(Right _) -> return res + schoolField :: Field Handler SchoolId schoolField = selectField $ optionsPersistKey [] [Asc SchoolName] schoolName diff --git a/src/Handler/Utils/Term.hs b/src/Handler/Utils/Term.hs deleted file mode 100644 index fa2186bf0..000000000 --- a/src/Handler/Utils/Term.hs +++ /dev/null @@ -1,59 +0,0 @@ -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE NoImplicitPrelude #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE QuasiQuotes #-} -{-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE TypeFamilies #-} -module Handler.Utils.Term where - -import Import -import qualified Data.Text as T -import Model.Types --- import Data.Maybe - - -termActiveField :: Field Handler TermId -termActiveField = selectField $ optionsPersistKey [TermActive ==. True] [Desc TermStart] termName - -termActiveOld :: Field Handler TermIdentifier -termActiveOld = convertField unTermKey TermKey $ selectField $ optionsPersistKey [TermActive ==. True] [Desc TermStart] termName - -termNewField :: Field Handler TermIdentifier -termNewField = checkMMap checkTerm termToText textField - where - errTextParse :: Text - errTextParse = "Semester: S oder W gefolgt von Jahreszahl" - - errTextFreigabe :: TermIdentifier -> Text - errTextFreigabe ti = "Semester " `T.append` (termToText ti) `T.append` " wurde noch nicht freigegeben." - - checkTerm :: Text -> HandlerT UniWorX IO (Either Text TermIdentifier) - checkTerm t = case termFromText t of - Left _ -> return $ Left errTextParse - res@(Right _) -> return res - -validateTerm :: Term -> [Text] -validateTerm (Term{..}) = - [ msg | (False, msg) <- - [ --startOk - ( termStart `withinTerm` termName - , "Jahreszahl im Namenskürzel stimmt nicht mit Semesterbeginn überein." - ) - , -- endOk - ( termStart < termEnd - , "Semester darf nicht enden, bevor es begann." - ) - , -- startOk - ( termLectureStart < termLectureEnd - , "Vorlesungszeit muss vor ihrem Ende anfgangen." - ) - , -- lecStartOk - ( termStart <= termLectureStart - , "Semester muss vor der Vorlesungszeit beginnen." - ) - , -- lecEndOk - ( termEnd >= termLectureEnd - , "Vorlesungszeit muss vor dem Semester enden." - ) - ] ] diff --git a/src/index.md b/src/index.md index 8643e2e4b..fee16d2ba 100644 --- a/src/index.md +++ b/src/index.md @@ -78,9 +78,6 @@ Handler.Utils.Table.Pagination.Types Handler.Utils.Templates : Modals -Handler.Utils.Term - : Formularfelder für Terms - Handler.Utils.Zip : Conduit-basiertes ZIP Parsen und Erstellen