Skip to content

Commit

Permalink
Allow classes and extra fields in CSV export BT#18813
Browse files Browse the repository at this point in the history
  • Loading branch information
jmontoyaa committed May 26, 2021
1 parent 6d2d0b3 commit 2c51754
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 24 deletions.
2 changes: 0 additions & 2 deletions main/inc/lib/tracking.lib.php
Expand Up @@ -8658,7 +8658,6 @@ public static function get_user_data(
);
}


if (empty($session_id)) {
$user_row['survey'] = $user['survey'];
} else {
Expand Down Expand Up @@ -8707,7 +8706,6 @@ public static function get_user_data(
//unset($user_row['classes']);
unset($user_row['link']);
}

$csv_content[] = $user_row;
}
$users[] = array_values($user_row);
Expand Down
85 changes: 63 additions & 22 deletions main/tracking/courseLog.php
Expand Up @@ -42,6 +42,13 @@
$this_section = 'session_my_space';
}

$additionalParams = '';
if (isset($_GET['additional_profile_field'])) {
foreach ($_GET['additional_profile_field'] as $fieldId) {
$additionalParams .= '&additional_profile_field[]='.(int) $fieldId;
}
}

// If the user is a HR director (drh)
if (api_is_drh()) {
// Blocking course for drh
Expand Down Expand Up @@ -90,6 +97,15 @@
$columnsToHide = json_encode($columnsToHide);
$csv_content = [];

$visibleIcon = Display::return_icon(
'visible.png',
get_lang('HideColumn'),
['align' => 'absmiddle', 'hspace' => '3px'],
ICON_SIZE_SMALL
);

$exportInactiveUsers = api_get_path(WEB_CODE_PATH).'tracking/courseLog.php?'.api_get_cidreq().'&'.$additionalParams;

// Scripts for reporting array hide/show columns
$js = "<script>
// hide column and display the button to unhide it
Expand All @@ -104,12 +120,7 @@ function init_hide() {
$('#reporting_table .data_table tr th').each(
function(index) {
$(this).prepend(
'<div style=\"cursor:pointer\" onclick=\"foldup(' + index + ')\">".Display::return_icon(
'visible.png',
get_lang('HideColumn'),
['align' => 'absmiddle', 'hspace' => '3px'],
ICON_SIZE_SMALL
)."</div>'
'<div style=\"cursor:pointer\" onclick=\"foldup(' + index + ')\">".$visibleIcon."</div>'
);
}
);
Expand All @@ -129,8 +140,7 @@ function(index) {
}
$('#download-csv').on('click', function (e) {
e.preventDefault();
location.href = '".api_get_path(WEB_CODE_PATH).'tracking/courseLog.php?'.api_get_cidreq().'&csv=1&since='."'+$('#reminder_form_since').val();
location.href = '".$exportInactiveUsers.'&csv=1&since='."'+$('#reminder_form_since').val();
});
})
</script>";
Expand Down Expand Up @@ -204,20 +214,13 @@ function(index) {
$actionsRight .= '<a href="javascript: void(0);" onclick="javascript: window.print();">'.
Display::return_icon('printer.png', get_lang('Print'), '', ICON_SIZE_MEDIUM).'</a>';

$additionalParams = '';
if (isset($_GET['additional_profile_field'])) {
foreach ($_GET['additional_profile_field'] as $fieldId) {
$additionalParams .= '&additional_profile_field[]='.(int) $fieldId;
}
}

$users_tracking_per_page = '';
if (isset($_GET['users_tracking_per_page'])) {
$users_tracking_per_page = '&users_tracking_per_page='.intval($_GET['users_tracking_per_page']);
}

$actionsRight .= '<a href="'.api_get_self().'?'.api_get_cidreq(
).'&export=csv&'.$additionalParams.$users_tracking_per_page.'">
$actionsRight .= '<a
href="'.api_get_self().'?'.api_get_cidreq().'&export=csv&'.$additionalParams.$users_tracking_per_page.'">
'.Display::return_icon('export_csv.png', get_lang('ExportAsCSV'), '', ICON_SIZE_MEDIUM).'</a>';
$actionsRight .= '</div>';
// Create a search-box.
Expand Down Expand Up @@ -1061,16 +1064,54 @@ function(index) {
$since = (int) $_GET['since'];
}
}
$usersId = Tracking::getInactiveStudentsInCourse(
$users = Tracking::getInactiveStudentsInCourse(
api_get_course_int_id(),
$since,
$sessionId
);
if (count($usersId) != 0) {
$csv_content[] = [get_lang('NamesAndLastNames'), get_lang('Classes')];
foreach ($usersId as $userId) {

if (count($users) != 0) {
$csv_content = [];
$csv_headers = [get_lang('NamesAndLastNames'), get_lang('Classes')];

$userProfileInfo = [];
if (isset($_GET['additional_profile_field'])) {
foreach ($_GET['additional_profile_field'] as $fieldId) {
$csv_headers[] = $extra_info[$fieldId]['display_text'];
$userProfileInfo[$fieldId] = TrackingCourseLog::getAdditionalProfileInformationOfFieldByUser(
$fieldId,
$users
);
$extra_info[$fieldId] = UserManager::get_extra_field_information($fieldId);
}
}
$csv_content[] = $csv_headers;
$userGroupManager = new UserGroup();

foreach ($users as $userId) {
$user = api_get_user_info($userId);
$csv_content[] = [$user['complete_name'], $user['classes']];
$classes = implode(
', ',
$userGroupManager->getNameListByUser($userId, UserGroup::NORMAL_CLASS)
);
$row = [$user['complete_name'], $classes];

foreach ($_GET['additional_profile_field'] as $fieldId) {
$extraFieldInfo = $extra_info[$fieldId];
if (isset($userProfileInfo[$fieldId]) && isset($userProfileInfo[$fieldId][$userId])) {
if (is_array($userProfileInfo[$fieldId][$userId])) {
$row[] = implode(
', ',
$userProfileInfo[$fieldId][$userId]
);
} else {
$row[] = $userProfileInfo[$fieldId][$userId];
}
} else {
$row[] = '';
}
}
$csv_content[] = $row;
}
ob_end_clean();
Export::arrayToCsv($csv_content, 'reporting_inactive_users');
Expand Down

0 comments on commit 2c51754

Please sign in to comment.