course log - option to set default extra fields as columns

pull/3909/head
Juan Cortizas Ponte 5 years ago
parent 8e0d403208
commit 4a66035b97
  1. 29
      main/inc/lib/tracking.lib.php
  2. 6
      main/install/configuration.dist.php
  3. 35
      main/tracking/courseLog.php

@ -8118,9 +8118,11 @@ class TrackingCourseLog
}
/**
* @param array $exclude Extra fields to be skipped, by ID
*
* @return string
*/
public static function display_additional_profile_fields()
public static function display_additional_profile_fields($exclude = [])
{
// getting all the extra profile fields that are defined by the platform administrator
$extra_fields = UserManager::get_extra_fields(0, 50, 5, 'ASC');
@ -8134,6 +8136,10 @@ class TrackingCourseLog
$return .= '<option value="-">'.get_lang('SelectFieldToAdd').'</option>';
$extra_fields_to_show = 0;
foreach ($extra_fields as $key => $field) {
// exclude extra profile fields by id
if (in_array($field[0], $exclude)) {
continue;
}
// show only extra fields that are visible + and can be filtered, added by J.Montoya
if ($field[6] == 1 && $field[8] == 1) {
if (isset($_GET['additional_profile_field']) && $field[0] == $_GET['additional_profile_field']) {
@ -8692,6 +8698,25 @@ class TrackingCourseLog
}
}
$data = Session::read('default_additional_user_profile_info');
$defaultExtraFieldInfo = Session::read('default_extra_field_info');
if (isset($defaultExtraFieldInfo) && isset($data)) {
foreach ($data as $clave => $val) {
if (isset($val[$user['user_id']])) {
if (is_array($val[$user['user_id']])) {
$user_row[$defaultExtraFieldInfo[$clave]['variable']] = implode(
', ',
$val[$user['user_id']]
);
} else {
$user_row[$defaultExtraFieldInfo[$clave]['variable']] = $val[$user['user_id']];
}
} else {
$user_row[$defaultExtraFieldInfo[$clave]['variable']] = '';
}
}
}
if (api_get_setting('show_email_addresses') === 'true') {
$user_row['email'] = $user['col4'];
}
@ -8717,6 +8742,8 @@ class TrackingCourseLog
Session::erase('additional_user_profile_info');
Session::erase('extra_field_info');
Session::erase('default_additional_user_profile_info');
Session::erase('default_extra_field_info');
Session::write('user_id_list', $userIdList);
return $users;

@ -221,6 +221,12 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
//);
// Course log - Default columns to hide
//$_configuration['course_log_hide_columns'] = ['columns' => [1, 9]];
// Course log - User extra fields to show as columns for default
// For example, to show as a default column the user extra field with id 15 and 37 on site 1:
// [1 => [15, 37]];
// Same config plus site 3 and extra fields with id 53 and 55:
// [1 => [15, 37], 2 => [53, 55]];
//$_configuration['course_log_default_extra_fields'] = [1 => []];
// Unoconv binary file
//$_configuration['unoconv.binaries'] = '/usr/bin/unoconv';
// Proxy settings for access external services

@ -206,6 +206,32 @@ if (isset($_GET['additional_profile_field'])) {
Session::write('additional_user_profile_info', $userProfileInfo);
Session::write('extra_field_info', $extra_info);
$defaultExtraFields = [];
$defaultExtraFieldsFromSettings = [];
$defaultExtraFieldsFromSettings = api_get_configuration_value('course_log_default_extra_fields');
if (isset($defaultExtraFieldsFromSettings)) {
$default_extra_fields = $defaultExtraFieldsFromSettings;
$defaultExtraInfo = [];
$defaultUserProfileInfo = [];
$user_array = [];
foreach ($studentList as $key => $item) {
$user_array[] = $key;
}
foreach ($default_extra_fields as $fieldId) {
// Fetching only the user that are loaded NOT ALL user in the portal.
$defaultUserProfileInfo[$fieldId] = TrackingCourseLog::getAdditionalProfileInformationOfFieldByUser(
$fieldId,
$user_array
);
$defaultExtraInfo[$fieldId] = UserManager::get_extra_field_information($fieldId);
}
Session::write('default_additional_user_profile_info', $defaultUserProfileInfo);
Session::write('default_extra_field_info', $defaultExtraInfo);
}
Display::display_header($nameTools, 'Tracking');
$actionsLeft = TrackingCourseLog::actionsLeft('users', $sessionId);
@ -589,7 +615,7 @@ if ($nbStudents > 0) {
Display::return_icon('export_csv.png', get_lang('ExportAsCSV'), '', ICON_SIZE_SMALL).
get_lang('ExportAsCSV')
.' </a>');
$extraFieldSelect = TrackingCourseLog::display_additional_profile_fields();
$extraFieldSelect = TrackingCourseLog::display_additional_profile_fields($default_extra_fields);
if (!empty($extraFieldSelect)) {
$html .= $extraFieldSelect;
}
@ -745,6 +771,13 @@ if ($nbStudents > 0) {
$parameters['additional_profile_field'] = $fieldId;
}
}
if (isset($default_extra_fields)) {
foreach ($defaultExtraInfo as $field) {
$table->set_header($counter, $field['display_text'], false);
$headers[$field['variable']] = $field['display_text'];
$counter++;
}
}
$table->set_header($counter, get_lang('Details'), false);
$headers['Details'] = get_lang('Details');

Loading…
Cancel
Save