diff options
| author | Michaela Brückner <brueckner@data-quest.de> | 2025-06-11 10:38:03 +0200 |
|---|---|---|
| committer | Michaela Brückner <brueckner@data-quest.de> | 2025-06-11 10:41:51 +0200 |
| commit | 1b35a1fd8cf8bfa1eb0f8e5ae5becb9f0981fa40 (patch) | |
| tree | 86e242eeeda60b051ee5be06b8d4f937bd3a2f5c /app | |
| parent | cb569604129064d74be41a74afe90d5bcaafed6f (diff) | |
Resolve "Export: Datenfelder fehlen im Teilnehmerexport von Gruppen"
Closes #5616
Merge request studip/studip!4254
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/course/statusgroups.php | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/app/controllers/course/statusgroups.php b/app/controllers/course/statusgroups.php index cc18f98..07df92b 100644 --- a/app/controllers/course/statusgroups.php +++ b/app/controllers/course/statusgroups.php @@ -312,7 +312,7 @@ class Course_StatusgroupsController extends AuthenticatedController $header = [ _('Gruppe'), - _('geschlecht'), + _('Geschlecht'), _('Titel'), _('Vorname'), _('Nachname'), @@ -329,6 +329,19 @@ class Course_StatusgroupsController extends AuthenticatedController $groups = Statusgruppen::findBySeminar_id($this->course_id); $result = []; + + $datafields = DataField::getDataFields('user'); + $datafields = array_filter( + $datafields, + fn(DataField $datafield) => $datafield->accessAllowed() + ); + + if (count($datafields) > 0) { + foreach ($datafields as $datafield) { + $header[] = (string)$datafield->name; + } + } + if ($groups) { $assigned_with_group = []; foreach ($groups as $group) { @@ -349,6 +362,23 @@ class Course_StatusgroupsController extends AuthenticatedController $result[$member->user_id] = $data; } + + // data fields + foreach ($members as $member) { + $user_datafields = DataFieldEntry::getDataFieldEntries( + $member->user_id, + 'user' + ); + foreach ($datafields as $datafield) { + $user_datafield = $user_datafields[$datafield->id] ?? null; + + if ($user_datafield) { + $result[$member->user_id][] = $user_datafield->getDisplayValue(false); + } else { + $result[$member->user_id][] = ''; + } + } + } } $filename = FileManager::cleanFileName(_('Gruppenliste') . ' ' . $this->course_title . '.' . $export_format); |
