feat(course-participants): csv export first name/surname separately
This commit is contained in:
parent
33961d1cb9
commit
1036926470
@ -2188,6 +2188,8 @@ CsvColumnExamUserParts: Erreichte Punktezahlen in den Teilprüfungen, sofern vor
|
|||||||
CsvColumnExamUserResult: Erreichte Prüfungsleistung; "passed", "failed", "no-show", "voided", oder eine Note ("1.0", "1.3", "1.7", ..., "4.0", "5.0")
|
CsvColumnExamUserResult: Erreichte Prüfungsleistung; "passed", "failed", "no-show", "voided", oder eine Note ("1.0", "1.3", "1.7", ..., "4.0", "5.0")
|
||||||
CsvColumnExamUserCourseNote: Notizen zum Teilnehmer
|
CsvColumnExamUserCourseNote: Notizen zum Teilnehmer
|
||||||
|
|
||||||
|
CsvColumnUserSurname: Nachname(n) des Teilnehmers
|
||||||
|
CsvColumnUserFirstName: Vorname(n) des Teilnehmers
|
||||||
CsvColumnUserName: Voller Name des Teilnehmers
|
CsvColumnUserName: Voller Name des Teilnehmers
|
||||||
CsvColumnUserMatriculation: Matrikelnummer des Teilnehmers
|
CsvColumnUserMatriculation: Matrikelnummer des Teilnehmers
|
||||||
CsvColumnUserSex: Geschlecht
|
CsvColumnUserSex: Geschlecht
|
||||||
|
|||||||
@ -2187,6 +2187,8 @@ CsvColumnExamUserParts: Number of points the participant achieved per exam part.
|
|||||||
CsvColumnExamUserResult: Exam achievement; "passed", "failed", "no-show", "voided", or any number grade ("1.0", "1.3", "1.7", ..., "4.0", "5.0")
|
CsvColumnExamUserResult: Exam achievement; "passed", "failed", "no-show", "voided", or any number grade ("1.0", "1.3", "1.7", ..., "4.0", "5.0")
|
||||||
CsvColumnExamUserCourseNote: Course notes for the participant
|
CsvColumnExamUserCourseNote: Course notes for the participant
|
||||||
|
|
||||||
|
CsvColumnUserSurname: Participant's surname
|
||||||
|
CsvColumnUserFirstName: Participant's given name
|
||||||
CsvColumnUserName: Participant's full name
|
CsvColumnUserName: Participant's full name
|
||||||
CsvColumnUserMatriculation: Participant's matriculation
|
CsvColumnUserMatriculation: Participant's matriculation
|
||||||
CsvColumnUserSex: Participant's sex
|
CsvColumnUserSex: Participant's sex
|
||||||
|
|||||||
@ -167,7 +167,9 @@ colUserSheets shns = cap (Sortable Nothing caption) $ foldMap userSheetCol shns
|
|||||||
|
|
||||||
|
|
||||||
data UserTableCsv = UserTableCsv
|
data UserTableCsv = UserTableCsv
|
||||||
{ csvUserName :: UserDisplayName
|
{ csvUserSurname :: UserSurname
|
||||||
|
, csvUserFirstName :: UserFirstName
|
||||||
|
, csvUserName :: UserDisplayName
|
||||||
, csvUserSex :: Maybe Sex
|
, csvUserSex :: Maybe Sex
|
||||||
, csvUserMatriculation :: Maybe UserMatriculation
|
, csvUserMatriculation :: Maybe UserMatriculation
|
||||||
, csvUserEmail :: UserEmail
|
, csvUserEmail :: UserEmail
|
||||||
@ -183,7 +185,9 @@ makeLenses_ ''UserTableCsv
|
|||||||
|
|
||||||
instance Csv.ToNamedRecord UserTableCsv where
|
instance Csv.ToNamedRecord UserTableCsv where
|
||||||
toNamedRecord UserTableCsv{..} = Csv.namedRecord $
|
toNamedRecord UserTableCsv{..} = Csv.namedRecord $
|
||||||
[ "name" Csv..= csvUserName
|
[ "surname" Csv..= csvUserSurname
|
||||||
|
, "first-name" Csv..= csvUserFirstName
|
||||||
|
, "name" Csv..= csvUserName
|
||||||
, "sex" Csv..= csvUserSex
|
, "sex" Csv..= csvUserSex
|
||||||
, "matriculation" Csv..= csvUserMatriculation
|
, "matriculation" Csv..= csvUserMatriculation
|
||||||
, "email" Csv..= csvUserEmail
|
, "email" Csv..= csvUserEmail
|
||||||
@ -208,7 +212,9 @@ instance Csv.ToNamedRecord UserTableCsv where
|
|||||||
]
|
]
|
||||||
instance CsvColumnsExplained UserTableCsv where
|
instance CsvColumnsExplained UserTableCsv where
|
||||||
csvColumnsExplanations _ = mconcat
|
csvColumnsExplanations _ = mconcat
|
||||||
[ single "name" MsgCsvColumnUserName
|
[ single "surname" MsgCsvColumnUserSurname
|
||||||
|
, single "first-name" MsgCsvColumnUserFirstName
|
||||||
|
, single "name" MsgCsvColumnUserName
|
||||||
, single "sex" MsgCsvColumnUserSex
|
, single "sex" MsgCsvColumnUserSex
|
||||||
, single "matriculation" MsgCsvColumnUserMatriculation
|
, single "matriculation" MsgCsvColumnUserMatriculation
|
||||||
, single "email" MsgCsvColumnUserEmail
|
, single "email" MsgCsvColumnUserEmail
|
||||||
@ -231,7 +237,7 @@ instance Default UserCsvExportData where
|
|||||||
|
|
||||||
userTableCsvHeader :: Bool -> [Entity Tutorial] -> [Entity Sheet] -> UserCsvExportData -> Csv.Header
|
userTableCsvHeader :: Bool -> [Entity Tutorial] -> [Entity Sheet] -> UserCsvExportData -> Csv.Header
|
||||||
userTableCsvHeader showSex tuts sheets UserCsvExportData{..} = Csv.header $
|
userTableCsvHeader showSex tuts sheets UserCsvExportData{..} = Csv.header $
|
||||||
[ "name" ] ++
|
[ "surname", "first-name", "name" ] ++
|
||||||
[ "sex" | showSex ] ++
|
[ "sex" | showSex ] ++
|
||||||
[ "matriculation", "email", "study-features"] ++
|
[ "matriculation", "email", "study-features"] ++
|
||||||
[ "tutorial" | hasEmptyRegGroup ] ++
|
[ "tutorial" | hasEmptyRegGroup ] ++
|
||||||
@ -460,7 +466,9 @@ makeCourseUserTable cid acts restrict colChoices psValidator csvColumns = do
|
|||||||
<$> apopt checkBoxField (fslI MsgCourseUserCsvIncludeSheets & setTooltip MsgCourseUserCsvIncludeSheetsTip) (Just $ csvUserIncludeSheets def)
|
<$> apopt checkBoxField (fslI MsgCourseUserCsvIncludeSheets & setTooltip MsgCourseUserCsvIncludeSheetsTip) (Just $ csvUserIncludeSheets def)
|
||||||
, dbtCsvDoEncode = \UserCsvExportData{} -> C.mapM $ \(_, row) -> flip runReaderT row $
|
, dbtCsvDoEncode = \UserCsvExportData{} -> C.mapM $ \(_, row) -> flip runReaderT row $
|
||||||
UserTableCsv
|
UserTableCsv
|
||||||
<$> view (hasUser . _userDisplayName)
|
<$> view (hasUser . _userSurname)
|
||||||
|
<*> view (hasUser . _userFirstName)
|
||||||
|
<*> view (hasUser . _userDisplayName)
|
||||||
<*> view (hasUser . _userSex)
|
<*> view (hasUser . _userSex)
|
||||||
<*> view (hasUser . _userMatrikelnummer)
|
<*> view (hasUser . _userMatrikelnummer)
|
||||||
<*> view (hasUser . _userEmail)
|
<*> view (hasUser . _userEmail)
|
||||||
|
|||||||
Reference in New Issue
Block a user