aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMichaela Brückner <brueckner@data-quest.de>2025-06-11 10:38:03 +0200
committerMichaela Brückner <brueckner@data-quest.de>2025-06-11 10:41:51 +0200
commit1b35a1fd8cf8bfa1eb0f8e5ae5becb9f0981fa40 (patch)
tree86e242eeeda60b051ee5be06b8d4f937bd3a2f5c /app
parentcb569604129064d74be41a74afe90d5bcaafed6f (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.php32
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);