chore(lms): add datatypes for export tables
This commit is contained in:
parent
303e7096d3
commit
cdc297716a
@ -36,7 +36,7 @@ AuthLDAPLookupFailed: Nutzer:in konnte aufgrund eines LDAP-Fehlers nicht nachges
|
||||
AuthLDAPInvalidLookup: Bestehender Nutzer/Bestehende Nutzerin konnte nicht eindeutig einem LDAP-Eintrag zugeordnet werden
|
||||
AuthLDAPAlreadyConfigured: Nutzer:in meldet sich bereits per Fraport AG Kennung in FRADrive an
|
||||
AuthLDAPConfigured: Nutzer:in meldet sich nun per Fraport AG Kennung in FRADrive an
|
||||
AuthLDAP !ident-ok: LMU-Account
|
||||
AuthLDAP !ident-ok: Fraport AG Kennung
|
||||
PasswordResetQueued: Link zum Passwort-Zurücksetzen versandt
|
||||
UserAssimilateUser: Benutzer:in
|
||||
AssimilateUserNotFound: E-Mail Adresse konnte keinem Benutzer/keiner Benutzerin zugeordnet werden
|
||||
|
||||
@ -36,7 +36,7 @@ AuthLDAPLookupFailed: User could not be looked up due to a LDAP error
|
||||
AuthLDAPInvalidLookup: Existing user could not be uniquely matched with a LDAP entry
|
||||
AuthLDAPAlreadyConfigured: User already logs in using their Fraport AG account
|
||||
AuthLDAPConfigured: User now logs in using their Fraport AG account
|
||||
AuthLDAP: LMU-Account
|
||||
AuthLDAP: Fraport AG account
|
||||
PasswordResetQueued: Sent link to reset password
|
||||
UserAssimilateUser: User
|
||||
AssimilateUserNotFound: Email could not be resolved to an user
|
||||
|
||||
@ -122,3 +122,5 @@ MenuCourseNewsEdit: Kursnachricht bearbeiten
|
||||
MenuCourseEventNew: Neuer Kurstermin
|
||||
MenuCourseEventEdit: Kurstermin bearbeiten
|
||||
MenuLanguage: Sprache
|
||||
|
||||
MenuLms: Schnittstelle E-Lernen
|
||||
@ -123,3 +123,5 @@ MenuCourseNewsEdit: Edit course news
|
||||
MenuCourseEventNew: New course occurrence
|
||||
MenuCourseEventEdit: Edit course occurrence
|
||||
MenuLanguage: Language
|
||||
|
||||
MenuLms: Interface E-Learning
|
||||
@ -133,6 +133,8 @@ breadcrumb HealthR = i18nCrumb MsgMenuHealth Nothing
|
||||
breadcrumb InstanceR = i18nCrumb MsgMenuInstance Nothing
|
||||
breadcrumb StatusR = i18nCrumb MsgMenuHealth Nothing -- never displayed
|
||||
|
||||
breadcrumb LmsR = i18nCrumb MsgMenuLms Nothing
|
||||
|
||||
breadcrumb ProfileR = i18nCrumb MsgBreadcrumbProfile Nothing
|
||||
breadcrumb SetDisplayEmailR = i18nCrumb MsgUserDisplayEmail $ Just ProfileR
|
||||
breadcrumb ProfileDataR = i18nCrumb MsgMenuProfileData $ Just ProfileR
|
||||
|
||||
@ -7,6 +7,49 @@ import Import
|
||||
|
||||
import Handler.Utils
|
||||
|
||||
import qualified Data.Csv as Csv
|
||||
import qualified Data.Conduit.List as C
|
||||
|
||||
type LmsUserIdent = Text -- Unique random use-once identifier for each individual e-learning course; i.e. users may have several active LmsUserIdents at once!
|
||||
|
||||
data LmsUserTableCsv = LmsUserTableCsv -- Export only
|
||||
{ csvLmsUserIdent :: LmsUserIdent
|
||||
, csvLmsUserPin :: Text
|
||||
, csvLmsUserReset, cvsLmsUserRemove, cvsLmsUserIntern :: Bool
|
||||
}
|
||||
|
||||
data LmsUserlistTableCsv = LmsUserlistTableCsv -- Import only, all users that are currently enlisted at the e-learning plattform
|
||||
{ csvLmsUserlistIdent :: LmsUserIdent
|
||||
, csvLmsUserlistFailed :: Bool
|
||||
}
|
||||
|
||||
data LmsResultTableCsv = LmsResultTableCsv -- Import only, all users that succeeded are returned ONCE only; must then be deleted via LmsUserTableCsv Export!
|
||||
{ csvLmsResultIdent :: LmsUserIdent
|
||||
, csvLmsResultSuccess :: UTCTime -- datestamp user succeeded (might be local time, unclear)
|
||||
}
|
||||
|
||||
csvLmsUserFilename :: IO Text
|
||||
csvLmsUserFilename = makeLmsFilename "user"
|
||||
|
||||
csvLmsUserlistFilename :: IO Text
|
||||
csvLmsUserlistFilename = makeLmsFilename "userliste"
|
||||
|
||||
csvLmsResultFilename :: IO Text
|
||||
csvLmsResultFilename = makeLmsFilename "ergebnisse"
|
||||
|
||||
--| create filenames as specified by LMS
|
||||
makeLmsFilename :: Text -> IO Text
|
||||
makeLmsFilename ftag = do
|
||||
ymth <- get_ymth
|
||||
return $ "fradrive_f_" <> ftag <> "_" <> ymth <> ".csv"
|
||||
|
||||
--| returns current datetime in YYYYMMDDHH format
|
||||
get_ymth :: IO Text
|
||||
get_ymth = do
|
||||
now <- getCurrentTime
|
||||
return $ formatTime "%Y%m%d%h"
|
||||
|
||||
|
||||
getLmsR :: Handler Html
|
||||
getLmsR = do
|
||||
let dbtIdent = "lmsUsers" :: Text
|
||||
@ -14,7 +57,7 @@ getLmsR = do
|
||||
dbtSQLQuery q = error "TODO"
|
||||
dbtRowKey = error "TODO"
|
||||
dbtProj = dbtProjSimple $ \(userIdent, userPin, doUserPinReset, doDeleteUser, isUserIntern) -> do
|
||||
return ("abcdefgh", "12345678", 0, 0, 0)
|
||||
return ("abcdefgh", "12345678", False, False, True) -- Warum keine Liste?
|
||||
dbtColonnade = colChoices
|
||||
dbtSorting = mempty
|
||||
dbtFilter = mempty
|
||||
@ -41,8 +84,9 @@ getLmsR = do
|
||||
-- <*> (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
|
||||
, dbtCsvName
|
||||
, dbtCsvSheetName
|
||||
, dbtCsvNoExportData = Nothing -- ?
|
||||
, dbtCsvHeader = return . Vector.filter csvColumns' . userTableCsvHeader showSex tutorials sheets . fromMaybe def
|
||||
, dbtCsvExampleData = Nothing
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user