From ea499b8920138a8b3c0db5b16e3aea04c368980c Mon Sep 17 00:00:00 2001 From: Christian Beeznest Date: Thu, 30 Jan 2025 16:38:09 -0500 Subject: [PATCH] Statistics: Add user extra fields to export users in course session - refs BT#22303 --- main/inc/lib/statistics.lib.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/main/inc/lib/statistics.lib.php b/main/inc/lib/statistics.lib.php index be8c876501..564b215193 100644 --- a/main/inc/lib/statistics.lib.php +++ b/main/inc/lib/statistics.lib.php @@ -1935,10 +1935,18 @@ class Statistics get_lang('Progress'), ]; + $extraField = new ExtraField('user'); + $extraFields = $extraField->get_all(['filter = ?' => 1], 'option_order'); + + foreach ($extraFields as $field) { + $headers[] = $field['variable']; + } + $exportData = [$headers]; foreach ($sessions as $session) { $sessionId = (int) $session['id']; $students = SessionManager::get_users_by_session($sessionId); + $extraValueObj = new ExtraFieldValue('user'); foreach ($students as $student) { $studentId = $student['user_id']; @@ -1951,7 +1959,7 @@ class Statistics $averageScore = round(Tracking::getAverageStudentScore($studentId, $courseCode, [], $sessionId)); $averageProgress = round(Tracking::get_avg_student_progress($studentId, $courseCode, [], $sessionId)); - $exportData[] = [ + $userData = [ $courseInfo['name'], $session['name'], $studentInfo['lastname'], @@ -1962,6 +1970,13 @@ class Statistics $averageScore, $averageProgress, ]; + + foreach ($extraFields as $field) { + $extraValue = $extraValueObj->get_values_by_handler_and_field_id($studentId, $field['id'], true); + $userData[] = $extraValue['value'] ?? ''; + } + + $exportData[] = $userData; } }