chore(lms): userlist page csv export added
This commit is contained in:
parent
01a2f47961
commit
60087d44b0
@ -72,7 +72,7 @@ makeLenses_ ''LmsResultTableCsv
|
|||||||
instance Csv.ToRecord LmsResultTableCsv -- default suffices
|
instance Csv.ToRecord LmsResultTableCsv -- default suffices
|
||||||
instance Csv.FromRecord LmsResultTableCsv -- default suffices
|
instance Csv.FromRecord LmsResultTableCsv -- default suffices
|
||||||
|
|
||||||
-- csv with headers
|
-- csv with headers -- TODO not yet supported
|
||||||
lmsResultTableCsvHeader :: Csv.Header
|
lmsResultTableCsvHeader :: Csv.Header
|
||||||
lmsResultTableCsvHeader = Csv.header [ csvResultIdent, csvResultSuccess ]
|
lmsResultTableCsvHeader = Csv.header [ csvResultIdent, csvResultSuccess ]
|
||||||
|
|
||||||
@ -88,7 +88,6 @@ instance FromNamedRecord LmsResultTableCsv where
|
|||||||
<$> csv Csv..: csvResultIdent
|
<$> csv Csv..: csvResultIdent
|
||||||
<*> csv Csv..: csvResultSuccess
|
<*> csv Csv..: csvResultSuccess
|
||||||
|
|
||||||
|
|
||||||
instance CsvColumnsExplained LmsResultTableCsv where
|
instance CsvColumnsExplained LmsResultTableCsv where
|
||||||
csvColumnsExplanations _ = mconcat
|
csvColumnsExplanations _ = mconcat
|
||||||
[ single csvResultIdent MsgCsvColumnLmsIdent
|
[ single csvResultIdent MsgCsvColumnLmsIdent
|
||||||
|
|||||||
@ -20,12 +20,46 @@ import qualified Database.Esqueleto.Legacy as E
|
|||||||
import qualified Database.Esqueleto.Utils as E
|
import qualified Database.Esqueleto.Utils as E
|
||||||
import Database.Esqueleto.Utils.TH
|
import Database.Esqueleto.Utils.TH
|
||||||
|
|
||||||
|
data LmsUserlistTableCsv = LmsUserlistTableCsv
|
||||||
|
{ csvLULident :: LmsIdent
|
||||||
|
, csvLULfailed :: Bool
|
||||||
|
}
|
||||||
|
deriving Generic
|
||||||
|
makeLenses_ ''LmsUserlistTableCsv
|
||||||
|
|
||||||
|
-- csv without headers -- TODO not yet supported
|
||||||
|
instance Csv.ToRecord LmsUserlistTableCsv
|
||||||
|
instance Csv.FromRecord LmsUserlistTableCsv
|
||||||
|
|
||||||
|
-- csv with headers
|
||||||
|
lmsUserlistTableCsvHeader :: Csv.Header
|
||||||
|
lmsUserlistTableCsvHeader = Csv.header [ csvUserlistIdent, csvUserlistBlocked ]
|
||||||
|
|
||||||
|
instance ToNamedRecord LmsUserlistTableCsv where
|
||||||
|
toNamedRecord LmsUserlistTableCsv{..} = Csv.namedRecord
|
||||||
|
[ csvUserlistIdent Csv..= csvLULident
|
||||||
|
, csvUserlistBlocked Csv..= csvLULfailed
|
||||||
|
]
|
||||||
|
instance FromNamedRecord LmsUserlistTableCsv where
|
||||||
|
parseNamedRecord (lsfHeaderTranslate -> csv)
|
||||||
|
= LmsUserlistTableCsv
|
||||||
|
<$> csv Csv..: csvUserlistIdent
|
||||||
|
<*> csv Csv..: csvUserlistBlocked
|
||||||
|
|
||||||
|
instance CsvColumnsExplained LmsUserlistTableCsv where
|
||||||
|
csvColumnsExplanations _ = mconcat
|
||||||
|
[ single csvUserlistIdent MsgCsvColumnLmsIdent
|
||||||
|
, single csvUserlistBlocked MsgCsvColumnLmsFailed
|
||||||
|
]
|
||||||
|
where
|
||||||
|
single :: RenderMessage UniWorX msg => Csv.Name -> msg -> Map Csv.Name Widget
|
||||||
|
single k v = singletonMap k [whamlet|_{v}|]
|
||||||
|
|
||||||
|
|
||||||
mkUserlistTable :: SchoolId -> QualificationShorthand -> QualificationId -> DB (Any, Widget)
|
mkUserlistTable :: SchoolId -> QualificationShorthand -> QualificationId -> DB (Any, Widget)
|
||||||
mkUserlistTable _sid qsh qid = do
|
mkUserlistTable _sid qsh qid = do
|
||||||
dbtCsvName <- csvFilenameLmsUserlist qsh
|
dbtCsvName <- csvFilenameLmsUserlist qsh
|
||||||
let _dbtCsvSheetName = dbtCsvName
|
let dbtCsvSheetName = dbtCsvName
|
||||||
let
|
let
|
||||||
userlistTable = DBTable{..}
|
userlistTable = DBTable{..}
|
||||||
where
|
where
|
||||||
@ -56,7 +90,16 @@ mkUserlistTable _sid qsh qid = do
|
|||||||
dbtParams = def
|
dbtParams = def
|
||||||
dbtIdent :: Text
|
dbtIdent :: Text
|
||||||
dbtIdent = "lms-userlist"
|
dbtIdent = "lms-userlist"
|
||||||
dbtCsvEncode = noCsvEncode
|
dbtCsvEncode = Just DBTCsvEncode {..}
|
||||||
|
where
|
||||||
|
dbtCsvExportForm = pure ()
|
||||||
|
dbtCsvNoExportData = Just id
|
||||||
|
dbtCsvExampleData = Nothing
|
||||||
|
dbtCsvHeader = const $ return lmsUserlistTableCsvHeader
|
||||||
|
dbtCsvDoEncode = \() -> C.map (doEncode' . view _2)
|
||||||
|
doEncode' = LmsUserlistTableCsv
|
||||||
|
<$> view (_dbrOutput . _entityVal . _lmsUserlistIdent)
|
||||||
|
<*> view (_dbrOutput . _entityVal . _lmsUserlistFailed)
|
||||||
dbtCsvDecode = Nothing -- TODO !!! continue here !!! CSV Import is the purpose of this page! Just save to DB, create Job to deal with it later!
|
dbtCsvDecode = Nothing -- TODO !!! continue here !!! CSV Import is the purpose of this page! Just save to DB, create Job to deal with it later!
|
||||||
dbtExtraReps = []
|
dbtExtraReps = []
|
||||||
|
|
||||||
|
|||||||
@ -457,11 +457,14 @@ fillDb = do
|
|||||||
for_ [jost] $ \uid ->
|
for_ [jost] $ \uid ->
|
||||||
void . insert' $ UserSchool uid avn False
|
void . insert' $ UserSchool uid avn False
|
||||||
|
|
||||||
_qid_f <- insert' $ Qualification avn "F" "Vorfeldführerschein" Nothing (Just 24) (Just $ 5 * 12) Nothing True
|
qid_f <- insert' $ Qualification avn "F" "Vorfeldführerschein" Nothing (Just 24) (Just $ 5 * 12) Nothing True
|
||||||
qid_r <- insert' $ Qualification avn "R" "Rollfeldführerschein" Nothing (Just 24) (Just $ 5 * 12) Nothing False
|
_qid_r <- insert' $ Qualification avn "R" "Rollfeldführerschein" Nothing (Just 24) (Just $ 5 * 12) Nothing False
|
||||||
void . insert' $ LmsResult qid_r (LmsIdent "hijklmn") (addBDays (-1) $ utctDay now) now
|
void . insert' $ LmsResult qid_f (LmsIdent "hijklmn") (addBDays (-1) $ utctDay now) now
|
||||||
void . insert' $ LmsResult qid_r (LmsIdent "opqgrs" ) (addBDays (-2) $ utctDay now) now
|
void . insert' $ LmsResult qid_f (LmsIdent "opqgrs" ) (addBDays (-2) $ utctDay now) now
|
||||||
void . insert' $ LmsResult qid_r (LmsIdent "pqgrst" ) (addBDays (-3) $ utctDay now) now
|
void . insert' $ LmsResult qid_f (LmsIdent "pqgrst" ) (addBDays (-3) $ utctDay now) now
|
||||||
|
void . insert' $ LmsUserlist qid_f (LmsIdent "hijklmn") False now
|
||||||
|
void . insert' $ LmsUserlist qid_f (LmsIdent "abcdefg") True now
|
||||||
|
void . insert' $ LmsUserlist qid_f (LmsIdent "ijk" ) False now
|
||||||
let
|
let
|
||||||
sdBsc = StudyDegreeKey' 82
|
sdBsc = StudyDegreeKey' 82
|
||||||
sdMst = StudyDegreeKey' 88
|
sdMst = StudyDegreeKey' 88
|
||||||
|
|||||||
Reference in New Issue
Block a user