chore(lms): table filter finally typing
This commit is contained in:
parent
3656f1e6f1
commit
e338c025e5
@ -86,7 +86,7 @@ LmsUser
|
||||
pin Text
|
||||
resetPin Bool default=false -- should pin be reset?
|
||||
success Bool Maybe -- open, success or failure; isJust indicates user will be deleted from LMS
|
||||
-- success LmsNotification --this would also encode Day information?!
|
||||
-- success LmsStatus --this would also encode Day information?!
|
||||
started UTCTime default=now()
|
||||
received UTCTime Maybe -- last acknowledgement by LMS
|
||||
ended UTCTime Maybe -- ident was deleted from LMS
|
||||
@ -113,7 +113,7 @@ LmsResult
|
||||
LmsAudit
|
||||
qualification QualificationId
|
||||
ident LmsIdent
|
||||
notificationType LmsNotification
|
||||
notificationType LmsStatus
|
||||
received UTCTime -- timestamp from LmsUserlist/LmsResult
|
||||
processed UTCTime default=now()
|
||||
deriving Generic
|
||||
|
||||
@ -129,11 +129,12 @@ mkResultTable qid = do
|
||||
] -- TODO: add more columns for manual debugging view !!!
|
||||
dbtSorting = Map.fromList
|
||||
[ ("ident" , SortColumn $ queryLmsResult >>> (E.^. LmsResultIdent))
|
||||
, ("success", SortColumn $ queryLmsResult >>> (E.^. LmsResultSuccess))
|
||||
-- , ("success", SortColumn . views queryLmsResult (E.^. LmsResultSuccess))
|
||||
-- , ("success", SortColumn $ queryLmsResult >>> (E.^. LmsResultSuccess))
|
||||
, ("success", SortColumn $ views (to queryLmsResult) (E.^. LmsResultSuccess))
|
||||
]
|
||||
dbtFilter = Map.fromList
|
||||
[ -- ("ident" , FilterColumn $ queryLmsResult >>> (E.^. LmsResultIdent))
|
||||
[ -- singletonMap "ident" . FilterColumn . E.mkContainsFilter $ views (to queryLmsResult) (E.^. LmsResultIdent)
|
||||
("ident", FilterColumn . E.mkContainsFilter $ views (to queryLmsResult) (E.^. LmsResultIdent))
|
||||
]
|
||||
dbtFilterUI = const mempty -- TODO !!! continue here !!! Manual filtering useful to deal with user complaints!
|
||||
dbtStyle = def
|
||||
|
||||
@ -9,17 +9,19 @@ module Model.Types.Lms
|
||||
|
||||
import Import.NoModel
|
||||
import Database.Persist.Sql
|
||||
import qualified Database.Esqueleto.Legacy as E
|
||||
import qualified Data.Csv as Csv
|
||||
import Utils.Lens.TH
|
||||
|
||||
newtype LmsIdent = LmsIdent { getLmsIdent :: Text }
|
||||
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
||||
deriving newtype (NFData, PersistField, PersistFieldSql, Csv.ToField, Csv.FromField)
|
||||
deriving newtype (NFData, PathPiece, PersistField, PersistFieldSql, Csv.ToField, Csv.FromField)
|
||||
instance E.SqlString LmsIdent where
|
||||
|
||||
makeLenses_ ''LmsIdent
|
||||
|
||||
-- TODO: is this a good idea? Maybe just an ordinary Enum and a separate Day Column in the DB would be better, especially since LmsBlocked should really also encode a Day
|
||||
data LmsNotification = LmsOpen | LmsBlocked | LmsSuccess Day
|
||||
data LmsStatus = LmsOpen | LmsBlocked | LmsSuccess Day
|
||||
deriving (Eq, Ord, Read, Show, Generic, Typeable, NFData)
|
||||
|
||||
deriveJSON defaultOptions
|
||||
@ -27,5 +29,5 @@ deriveJSON defaultOptions
|
||||
, fieldLabelModifier = camelToPathPiece' 1
|
||||
, omitNothingFields = True
|
||||
, sumEncoding = TaggedObject "lmsaudit" "lmsaction"
|
||||
} ''LmsNotification
|
||||
derivePersistFieldJSON ''LmsNotification
|
||||
} ''LmsStatus
|
||||
derivePersistFieldJSON ''LmsStatus
|
||||
|
||||
Loading…
Reference in New Issue
Block a user