feat minor: E.isJust added
This commit is contained in:
parent
4423817ef5
commit
782110a824
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
module Database.Esqueleto.Utils
|
module Database.Esqueleto.Utils
|
||||||
( true, false
|
( true, false
|
||||||
|
, isJust
|
||||||
, isInfixOf, hasInfix
|
, isInfixOf, hasInfix
|
||||||
, any, all
|
, any, all
|
||||||
, SqlIn(..)
|
, SqlIn(..)
|
||||||
@ -11,7 +12,7 @@ module Database.Esqueleto.Utils
|
|||||||
, anyFilter, allFilter
|
, anyFilter, allFilter
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import ClassyPrelude.Yesod hiding (isInfixOf, any, all)
|
import ClassyPrelude.Yesod hiding (isInfixOf, any, all, isJust)
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
import qualified Data.Foldable as F
|
import qualified Data.Foldable as F
|
||||||
import qualified Database.Esqueleto as E
|
import qualified Database.Esqueleto as E
|
||||||
@ -34,6 +35,10 @@ true = E.val True
|
|||||||
false :: E.SqlExpr (E.Value Bool)
|
false :: E.SqlExpr (E.Value Bool)
|
||||||
false = E.val False
|
false = E.val False
|
||||||
|
|
||||||
|
-- | Negation of `isNothing` which is missing
|
||||||
|
isJust :: (E.Esqueleto query expr backend, PersistField typ) => expr (E.Value (Maybe typ)) -> expr (E.Value Bool)
|
||||||
|
isJust = E.not_ . E.isNothing
|
||||||
|
|
||||||
-- | Check if the first string is contained in the text derived from the second argument
|
-- | Check if the first string is contained in the text derived from the second argument
|
||||||
isInfixOf :: (E.Esqueleto query expr backend, E.SqlString s2) =>
|
isInfixOf :: (E.Esqueleto query expr backend, E.SqlString s2) =>
|
||||||
Text -> expr (E.Value s2) -> expr (E.Value Bool)
|
Text -> expr (E.Value s2) -> expr (E.Value Bool)
|
||||||
|
|||||||
@ -337,13 +337,13 @@ makeCorrectionsTable whereClause dbtColonnade dbtFilterUI psValidator dbtProj' d
|
|||||||
, ( "isassigned"
|
, ( "isassigned"
|
||||||
, FilterColumn $ \((_ `E.InnerJoin` _ `E.InnerJoin` submission) `E.LeftOuterJoin` _ :: CorrectionTableExpr) criterion -> case getLast (criterion :: Last Bool) of
|
, FilterColumn $ \((_ `E.InnerJoin` _ `E.InnerJoin` submission) `E.LeftOuterJoin` _ :: CorrectionTableExpr) criterion -> case getLast (criterion :: Last Bool) of
|
||||||
Nothing -> E.val True :: E.SqlExpr (E.Value Bool)
|
Nothing -> E.val True :: E.SqlExpr (E.Value Bool)
|
||||||
Just True -> E.not_ . E.isNothing $ submission E.^. SubmissionRatingBy
|
Just True -> E.isJust $ submission E.^. SubmissionRatingBy
|
||||||
Just False-> E.isNothing $ submission E.^. SubmissionRatingBy
|
Just False-> E.isNothing $ submission E.^. SubmissionRatingBy
|
||||||
)
|
)
|
||||||
, ( "israted"
|
, ( "israted"
|
||||||
, FilterColumn $ \((_ `E.InnerJoin` _ `E.InnerJoin` submission) `E.LeftOuterJoin` _ :: CorrectionTableExpr) criterion -> case getLast (criterion :: Last Bool) of
|
, FilterColumn $ \((_ `E.InnerJoin` _ `E.InnerJoin` submission) `E.LeftOuterJoin` _ :: CorrectionTableExpr) criterion -> case getLast (criterion :: Last Bool) of
|
||||||
Nothing -> E.val True :: E.SqlExpr (E.Value Bool)
|
Nothing -> E.val True :: E.SqlExpr (E.Value Bool)
|
||||||
Just True -> E.not_ . E.isNothing $ submission E.^. SubmissionRatingTime
|
Just True -> E.isJust $ submission E.^. SubmissionRatingTime
|
||||||
Just False-> E.isNothing $ submission E.^. SubmissionRatingTime
|
Just False-> E.isNothing $ submission E.^. SubmissionRatingTime
|
||||||
)
|
)
|
||||||
, ( "corrector-name-email" -- corrector filter does not work for text-filtering
|
, ( "corrector-name-email" -- corrector filter does not work for text-filtering
|
||||||
|
|||||||
Reference in New Issue
Block a user