diff --git a/main/inc/ajax/model.ajax.php b/main/inc/ajax/model.ajax.php index c8b9ee3aca..432899856b 100755 --- a/main/inc/ajax/model.ajax.php +++ b/main/inc/ajax/model.ajax.php @@ -1923,6 +1923,10 @@ switch ($action) { Display::return_icon('works.png', get_lang('WorksReport')), api_get_path(WEB_CODE_PATH).'mySpace/works_in_session_report.php?session='.$session['id'] ); + $detailButtons[] = Display::url( + Display::return_icon('clock.png', get_lang('ProgressInSessionReport')), + api_get_path(WEB_CODE_PATH).'mySpace/progress_in_session_report.php?session_id='.$session['id'] + ); $detailButtons[] = Display::url( Display::return_icon('2rightarrow.png'), api_get_path(WEB_CODE_PATH).'mySpace/course.php?session_id='.$session['id'] diff --git a/main/mySpace/progress_in_session_report.php b/main/mySpace/progress_in_session_report.php index b2d08b5dfe..bd9c6c182f 100644 --- a/main/mySpace/progress_in_session_report.php +++ b/main/mySpace/progress_in_session_report.php @@ -23,6 +23,34 @@ $interbreadcrumb[] = [ 'name' => get_lang('FollowedSessions'), ]; +$sessionId = isset($_GET['session_id']) ? (int) $_GET['session_id'] : 0; + +$script = ''; + $actions = null; $actions .= Display::url( Display::return_icon('back.png', get_lang('Back'), @@ -31,14 +59,6 @@ $actions .= Display::url( ), '../mySpace/session.php' ); -$actions .= Display::url( - Display::return_icon('export_csv.png', get_lang('ExportAsCSV'), [], 32), - api_get_self().'?export=csv' -); -$actions .= Display::url( - Display::return_icon('export_excel.png', get_lang('ExportAsXLS'), [], ICON_SIZE_MEDIUM), - api_get_self().'?export=xls' -); if (api_is_platform_admin()) { $sessionList = SessionManager::get_sessions_list(); @@ -63,11 +83,10 @@ $form->addDateRangePicker( false, ['id' => 'date_range'] ); -$form->addButtonFilter(get_lang('Filter')); +$form->addButtonFilter(get_lang('Filter'), 'submitReport'); -$sid = isset($_GET['sid']) ? (int) $_GET['sid'] : 0; if (!empty($sessionId)) { - $form->setDefaults(['session_id' => $sid]); + $form->setDefaults(['session_id' => $sessionId]); } $users = []; @@ -132,12 +151,49 @@ if ($form->validate()) { } } +if (isset($_GET['export']) && !empty($users)) { + $fileName = 'progress_in_session_'.api_get_local_time(); + + $dataToExport = []; + $dataToExport['headers'][] = get_lang('StudentName'); + $dataToExport['headers'][] = get_lang('TimeSpentOnThePlatform'); + + foreach ($courses as $courseCode) { + $dataToExport['headers'][] = get_lang('Progress').' '.$courseCode; + $dataToExport['headers'][] = get_lang('Certificate').' '.$courseCode; + } + + foreach ($users as $user) { + $dataToExport[] = $user; + } + + switch ($_GET['export']) { + case 'xls': + Export::export_table_xls_html($dataToExport, $fileName); + break; + case 'csv': + Export::arrayToCsv($dataToExport, $fileName); + break; + } +} + $view = new Template($toolName); $view->assign('form', $form->returnForm()); +$view->assign('script', $script); if (!empty($users)) { $view->assign('sessionName', $sessionName); $view->assign('courses', $courses); $view->assign('users', $users); + $actions .= Display::url( + Display::return_icon('export_csv.png', get_lang('ExportAsCSV'), [], 32), + api_get_self().'?export=csv', + ['class' => 'export'] + ); + $actions .= Display::url( + Display::return_icon('export_excel.png', get_lang('ExportAsXLS'), [], ICON_SIZE_MEDIUM), + api_get_self().'?export=xls', + ['class' => 'export'] + ); } $template = $view->get_template('my_space/progress_in_session_report.tpl'); $content = $view->fetch($template); diff --git a/main/mySpace/session.php b/main/mySpace/session.php index 05db23d896..4e358a1313 100755 --- a/main/mySpace/session.php +++ b/main/mySpace/session.php @@ -347,7 +347,7 @@ if (api_is_platform_admin(true, true)) { ); $menu_items[] = Display::url( - Display::return_icon('clock.png', get_lang('ProgressInSessionReport'), [], ICON_SIZE_MEDIUM), + Display::return_icon('attendance_list.png', get_lang('ProgressInSessionReport'), [], ICON_SIZE_MEDIUM), api_get_path(WEB_CODE_PATH).'mySpace/progress_in_session_report.php' ); diff --git a/main/template/default/my_space/progress_in_session_report.tpl b/main/template/default/my_space/progress_in_session_report.tpl index 86cfd5fca7..6f6f5198f2 100644 --- a/main/template/default/my_space/progress_in_session_report.tpl +++ b/main/template/default/my_space/progress_in_session_report.tpl @@ -28,4 +28,6 @@ -{% endif %} \ No newline at end of file +{% endif %} + +{{script}} \ No newline at end of file