feat(course-participants): csv export first name/surname separately

This commit is contained in:
Gregor Kleen 2021-03-22 12:00:07 +01:00
parent 33961d1cb9
commit 1036926470
3 changed files with 17 additions and 5 deletions

View File

@ -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")
CsvColumnExamUserCourseNote: Notizen zum Teilnehmer
CsvColumnUserSurname: Nachname(n) des Teilnehmers
CsvColumnUserFirstName: Vorname(n) des Teilnehmers
CsvColumnUserName: Voller Name des Teilnehmers
CsvColumnUserMatriculation: Matrikelnummer des Teilnehmers
CsvColumnUserSex: Geschlecht

View File

@ -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")
CsvColumnExamUserCourseNote: Course notes for the participant
CsvColumnUserSurname: Participant's surname
CsvColumnUserFirstName: Participant's given name
CsvColumnUserName: Participant's full name
CsvColumnUserMatriculation: Participant's matriculation
CsvColumnUserSex: Participant's sex

View File

@ -167,7 +167,9 @@ colUserSheets shns = cap (Sortable Nothing caption) $ foldMap userSheetCol shns
data UserTableCsv = UserTableCsv
{ csvUserName :: UserDisplayName
{ csvUserSurname :: UserSurname
, csvUserFirstName :: UserFirstName
, csvUserName :: UserDisplayName
, csvUserSex :: Maybe Sex
, csvUserMatriculation :: Maybe UserMatriculation
, csvUserEmail :: UserEmail
@ -183,7 +185,9 @@ makeLenses_ ''UserTableCsv
instance Csv.ToNamedRecord UserTableCsv where
toNamedRecord UserTableCsv{..} = Csv.namedRecord $
[ "name" Csv..= csvUserName
[ "surname" Csv..= csvUserSurname
, "first-name" Csv..= csvUserFirstName
, "name" Csv..= csvUserName
, "sex" Csv..= csvUserSex
, "matriculation" Csv..= csvUserMatriculation
, "email" Csv..= csvUserEmail
@ -208,7 +212,9 @@ instance Csv.ToNamedRecord UserTableCsv where
]
instance CsvColumnsExplained UserTableCsv where
csvColumnsExplanations _ = mconcat
[ single "name" MsgCsvColumnUserName
[ single "surname" MsgCsvColumnUserSurname
, single "first-name" MsgCsvColumnUserFirstName
, single "name" MsgCsvColumnUserName
, single "sex" MsgCsvColumnUserSex
, single "matriculation" MsgCsvColumnUserMatriculation
, single "email" MsgCsvColumnUserEmail
@ -231,7 +237,7 @@ instance Default UserCsvExportData where
userTableCsvHeader :: Bool -> [Entity Tutorial] -> [Entity Sheet] -> UserCsvExportData -> Csv.Header
userTableCsvHeader showSex tuts sheets UserCsvExportData{..} = Csv.header $
[ "name" ] ++
[ "surname", "first-name", "name" ] ++
[ "sex" | showSex ] ++
[ "matriculation", "email", "study-features"] ++
[ "tutorial" | hasEmptyRegGroup ] ++
@ -460,7 +466,9 @@ makeCourseUserTable cid acts restrict colChoices psValidator csvColumns = do
<$> apopt checkBoxField (fslI MsgCourseUserCsvIncludeSheets & setTooltip MsgCourseUserCsvIncludeSheetsTip) (Just $ csvUserIncludeSheets def)
, dbtCsvDoEncode = \UserCsvExportData{} -> C.mapM $ \(_, row) -> flip runReaderT row $
UserTableCsv
<$> view (hasUser . _userDisplayName)
<$> view (hasUser . _userSurname)
<*> view (hasUser . _userFirstName)
<*> view (hasUser . _userDisplayName)
<*> view (hasUser . _userSex)
<*> view (hasUser . _userMatrikelnummer)
<*> view (hasUser . _userEmail)