chore: add LMS Handler stub

This commit is contained in:
Sarah Vaupel 2022-02-04 18:20:15 +01:00
parent 1ab4cbdec4
commit 303e7096d3
2 changed files with 69 additions and 1 deletions

5
routes
View File

@ -252,4 +252,7 @@
!/#UUID CryptoUUIDDispatchR GET !free -- just redirect
-- !/*{CI FilePath} CryptoFileNameDispatchR GET !free -- Disabled until preliminary check for valid cID exists
!/*WellKnownFileName WellKnownR GET !free
!/*WellKnownFileName WellKnownR GET !free
-- OSIS CSV Export Demo
/lms LmsR GET

65
src/Handler/LMS.hs Normal file
View File

@ -0,0 +1,65 @@
module Handler.LMS
( getLmsR
)
where
import Import
import Handler.Utils
getLmsR :: Handler Html
getLmsR = do
let dbtIdent = "lmsUsers" :: Text
dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
dbtSQLQuery q = error "TODO"
dbtRowKey = error "TODO"
dbtProj = dbtProjSimple $ \(userIdent, userPin, doUserPinReset, doDeleteUser, isUserIntern) -> do
return ("abcdefgh", "12345678", 0, 0, 0)
dbtColonnade = colChoices
dbtSorting = mempty
dbtFilter = mempty
dbtFilterUI = mempty
dbtParams = def
dbtCsvName = "lms.csv"
-- TODO: wip, for reference, see e.g. Handler.Course.Users or Handler.Exam.
dbtCsvEncode = do
return $ DBTCsvEncode
{ dbtCsvExportForm = def
, dbtCsvDoEncode = \UserCsvExportData{} -> C.mapM $ \(_, row) -> flip runReaderT row $
LmsTableCsv -- <- for each desired column one view
<$> view (hasUser . _userSurname)
<*> view (hasUser . _userFirstName)
<*> view (hasUser . _userDisplayName)
<*> view (hasUser . _userSex)
<*> view (hasUser . _userMatrikelnummer)
<*> view (hasUser . _userEmail)
<*> view _userStudyFeatures
<*> preview (_userSubmissionGroup . _entityVal . _submissionGroupName)
<*> view _userTableRegistration
<*> userNote
<*> (over (_2.traverse._Just) (tutorialName . entityVal) . over (_1.traverse) (tutorialName . entityVal) <$> view _userTutorials)
-- <*> (over (_2.traverse._Just) (examName . entityVal) . over (_1.traverse) (examName . entityVal) <$> view _userExams)
<*> (over traverse (examName . entityVal) <$> view _userExams)
<*> views _userSheets (set (mapped . _1 . mapped) ())
, dbtCsvName, dbtCsvSheetName
, dbtCsvNoExportData = Nothing
, dbtCsvHeader = return . Vector.filter csvColumns' . userTableCsvHeader showSex tutorials sheets . fromMaybe def
, dbtCsvExampleData = Nothing
}
-- TODO wip, for reference see e.g. Handler.Exam.Users
dbtCsvDecode = Just DBTCsvDecode
{ dbtCsvRowKey =
, dbtCsvComputeActions =
, dbtCsvClassifyAction =
, dbtCsvCoarsenActionClass =
, dbtCsvValidateActions =
, dbtCsvExecuteActions = -- <- actions based on sent data here
, dbtCsvRenderKey =
, dbtCsvRenderActionClass =
, dbtCsvRenderException =
}
dbTable psValidator DBTable{..}
let heading = [whamlet|LMS|]
siteLayout heading $ do
setTitleI heading
$(widgetFile "lms")