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
|
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
|
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
|
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
|
PasswordResetQueued: Link zum Passwort-Zurücksetzen versandt
|
||||||
UserAssimilateUser: Benutzer:in
|
UserAssimilateUser: Benutzer:in
|
||||||
AssimilateUserNotFound: E-Mail Adresse konnte keinem Benutzer/keiner Benutzerin zugeordnet werden
|
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
|
AuthLDAPInvalidLookup: Existing user could not be uniquely matched with a LDAP entry
|
||||||
AuthLDAPAlreadyConfigured: User already logs in using their Fraport AG account
|
AuthLDAPAlreadyConfigured: User already logs in using their Fraport AG account
|
||||||
AuthLDAPConfigured: User now 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
|
PasswordResetQueued: Sent link to reset password
|
||||||
UserAssimilateUser: User
|
UserAssimilateUser: User
|
||||||
AssimilateUserNotFound: Email could not be resolved to an user
|
AssimilateUserNotFound: Email could not be resolved to an user
|
||||||
|
|||||||
@ -122,3 +122,5 @@ MenuCourseNewsEdit: Kursnachricht bearbeiten
|
|||||||
MenuCourseEventNew: Neuer Kurstermin
|
MenuCourseEventNew: Neuer Kurstermin
|
||||||
MenuCourseEventEdit: Kurstermin bearbeiten
|
MenuCourseEventEdit: Kurstermin bearbeiten
|
||||||
MenuLanguage: Sprache
|
MenuLanguage: Sprache
|
||||||
|
|
||||||
|
MenuLms: Schnittstelle E-Lernen
|
||||||
@ -123,3 +123,5 @@ MenuCourseNewsEdit: Edit course news
|
|||||||
MenuCourseEventNew: New course occurrence
|
MenuCourseEventNew: New course occurrence
|
||||||
MenuCourseEventEdit: Edit course occurrence
|
MenuCourseEventEdit: Edit course occurrence
|
||||||
MenuLanguage: Language
|
MenuLanguage: Language
|
||||||
|
|
||||||
|
MenuLms: Interface E-Learning
|
||||||
@ -133,6 +133,8 @@ breadcrumb HealthR = i18nCrumb MsgMenuHealth Nothing
|
|||||||
breadcrumb InstanceR = i18nCrumb MsgMenuInstance Nothing
|
breadcrumb InstanceR = i18nCrumb MsgMenuInstance Nothing
|
||||||
breadcrumb StatusR = i18nCrumb MsgMenuHealth Nothing -- never displayed
|
breadcrumb StatusR = i18nCrumb MsgMenuHealth Nothing -- never displayed
|
||||||
|
|
||||||
|
breadcrumb LmsR = i18nCrumb MsgMenuLms Nothing
|
||||||
|
|
||||||
breadcrumb ProfileR = i18nCrumb MsgBreadcrumbProfile Nothing
|
breadcrumb ProfileR = i18nCrumb MsgBreadcrumbProfile Nothing
|
||||||
breadcrumb SetDisplayEmailR = i18nCrumb MsgUserDisplayEmail $ Just ProfileR
|
breadcrumb SetDisplayEmailR = i18nCrumb MsgUserDisplayEmail $ Just ProfileR
|
||||||
breadcrumb ProfileDataR = i18nCrumb MsgMenuProfileData $ Just ProfileR
|
breadcrumb ProfileDataR = i18nCrumb MsgMenuProfileData $ Just ProfileR
|
||||||
|
|||||||
@ -7,6 +7,49 @@ import Import
|
|||||||
|
|
||||||
import Handler.Utils
|
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 :: Handler Html
|
||||||
getLmsR = do
|
getLmsR = do
|
||||||
let dbtIdent = "lmsUsers" :: Text
|
let dbtIdent = "lmsUsers" :: Text
|
||||||
@ -14,7 +57,7 @@ getLmsR = do
|
|||||||
dbtSQLQuery q = error "TODO"
|
dbtSQLQuery q = error "TODO"
|
||||||
dbtRowKey = error "TODO"
|
dbtRowKey = error "TODO"
|
||||||
dbtProj = dbtProjSimple $ \(userIdent, userPin, doUserPinReset, doDeleteUser, isUserIntern) -> do
|
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
|
dbtColonnade = colChoices
|
||||||
dbtSorting = mempty
|
dbtSorting = mempty
|
||||||
dbtFilter = mempty
|
dbtFilter = mempty
|
||||||
@ -41,8 +84,9 @@ getLmsR = do
|
|||||||
-- <*> (over (_2.traverse._Just) (examName . entityVal) . over (_1.traverse) (examName . entityVal) <$> view _userExams)
|
-- <*> (over (_2.traverse._Just) (examName . entityVal) . over (_1.traverse) (examName . entityVal) <$> view _userExams)
|
||||||
<*> (over traverse (examName . entityVal) <$> view _userExams)
|
<*> (over traverse (examName . entityVal) <$> view _userExams)
|
||||||
<*> views _userSheets (set (mapped . _1 . mapped) ())
|
<*> views _userSheets (set (mapped . _1 . mapped) ())
|
||||||
, dbtCsvName, dbtCsvSheetName
|
, dbtCsvName
|
||||||
, dbtCsvNoExportData = Nothing
|
, dbtCsvSheetName
|
||||||
|
, dbtCsvNoExportData = Nothing -- ?
|
||||||
, dbtCsvHeader = return . Vector.filter csvColumns' . userTableCsvHeader showSex tutorials sheets . fromMaybe def
|
, dbtCsvHeader = return . Vector.filter csvColumns' . userTableCsvHeader showSex tutorials sheets . fromMaybe def
|
||||||
, dbtCsvExampleData = Nothing
|
, dbtCsvExampleData = Nothing
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user