Simplifying reportings see BT#7297

1.9.x
Julio Montoya 12 years ago
parent b9f86abf74
commit 0d621c382a
  1. 2
      main/inc/ajax/model.ajax.php
  2. 16
      main/inc/lib/course.lib.php
  3. 61
      main/inc/lib/tracking.lib.php
  4. 85
      main/mySpace/course.php
  5. 47
      main/mySpace/index.php
  6. 109
      main/mySpace/session.php

@ -590,7 +590,7 @@ switch ($action) {
} else { } else {
$session_date_string = implode(' ', $session_date); $session_date_string = implode(' ', $session_date);
} }
$sessionUrl = api_get_path(WEB_CODE_PATH).'mySpace/index.php?session_id='.$session['id']; $sessionUrl = api_get_path(WEB_CODE_PATH).'mySpace/course.php?session_id='.$session['id'];
$result[] = array( $result[] = array(
'name' => $session['name'], 'name' => $session['name'],
'date' => $session_date_string, 'date' => $session_date_string,

@ -733,15 +733,15 @@ class CourseManager
* @return array Course list * @return array Course list
* *
**/ **/
public static function get_course_list_as_coach($user_id, $include_courses_in_sessions = false) { public static function get_course_list_as_coach($user_id, $include_courses_in_sessions = false)
{
//1. Getting courses as teacher (No session) // 1. Getting courses as teacher (No session)
$courses_temp = CourseManager::get_course_list_of_user_as_course_admin($user_id); $courses_temp = CourseManager::get_course_list_of_user_as_course_admin($user_id);
$courses_as_admin = array(); $courseList = array();
if (!empty($courses_temp)) { if (!empty($courses_temp)) {
foreach($courses_temp as $course_item) { foreach ($courses_temp as $course_item) {
$courses_as_admin[0][$course_item['course_code']] = $course_item['course_code']; $courseList[0][$course_item['course_code']] = $course_item['course_code'];
} }
} }
@ -754,13 +754,13 @@ class CourseManager
$courses = Tracking :: get_courses_followed_by_coach($user_id, $session_item['id']); $courses = Tracking :: get_courses_followed_by_coach($user_id, $session_item['id']);
if (is_array($courses)) { if (is_array($courses)) {
foreach($courses as $course_item) { foreach($courses as $course_item) {
$courses_as_admin[$session_item['id']][$course_item] = $course_item; $courseList[$session_item['id']][$course_item] = $course_item;
} }
} }
} }
} }
} }
return $courses_as_admin; return $courseList;
} }
/** /**

@ -1233,48 +1233,57 @@ class Tracking
* @param int Session id (optional) * @param int Session id (optional)
* @return array Courses list * @return array Courses list
*/ */
public static function get_courses_followed_by_coach($coach_id, $id_session = '') { public static function get_courses_followed_by_coach($coach_id, $id_session = null)
{
$coach_id = intval($coach_id); $coach_id = intval($coach_id);
if (!empty ($id_session)) if (!empty($id_session)) {
$id_session = intval($id_session); $id_session = intval($id_session);
}
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
// At first, courses where $coach_id is coach of the course $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = 'SELECT DISTINCT course_code FROM ' . $tbl_session_course_user . ' WHERE id_user=' . $coach_id.' AND status=2'; // At first, courses where $coach_id is coach of the course.
global $_configuration; $sql = 'SELECT DISTINCT course_code
FROM ' . $tbl_session_course_user . '
WHERE id_user = ' . $coach_id.' AND status = 2';
if (api_is_multiple_url_enabled()) { if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); $tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id(); $access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){ if ($access_url_id != -1){
$sql = 'SELECT DISTINCT scu.course_code FROM ' . $tbl_session_course_user . ' scu INNER JOIN '.$tbl_course_rel_access_url.' cru $sql = 'SELECT DISTINCT scu.course_code
ON (scu.course_code = cru.course_code) FROM ' . $tbl_session_course_user . ' scu
WHERE scu.id_user=' . $coach_id.' AND scu.status=2 AND cru.access_url_id = '.$access_url_id; INNER JOIN '.$tbl_course_rel_access_url.' cru
ON (scu.course_code = cru.course_code)
WHERE
scu.id_user=' . $coach_id.' AND
scu.status=2 AND
cru.access_url_id = '.$access_url_id;
} }
} }
if (!empty ($id_session)) if (!empty($id_session)) {
$sql .= ' AND id_session=' . $id_session; $sql .= ' AND id_session=' . $id_session;
}
$courseList = array();
$result = Database::query($sql); $result = Database::query($sql);
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
$a_courses[$row['course_code']] = $row['course_code']; $courseList[$row['course_code']] = $row['course_code'];
} }
// Then, courses where $coach_id is coach of the session // Then, courses where $coach_id is coach of the session
$sql = 'SELECT DISTINCT session_course.course_code $sql = 'SELECT DISTINCT session_course.course_code
FROM ' . $tbl_session_course . ' as session_course FROM ' . $tbl_session_course . ' as session_course
INNER JOIN ' . $tbl_session . ' as session INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session ON session.id = session_course.id_session
AND session.id_coach = ' . $coach_id . ' AND session.id_coach = ' . $coach_id . '
INNER JOIN ' . $tbl_course . ' as course INNER JOIN ' . $tbl_course . ' as course
ON course.code = session_course.course_code'; ON course.code = session_course.course_code';
if (api_is_multiple_url_enabled()) { if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); $tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
@ -1303,10 +1312,10 @@ class Tracking
$result = Database::query($sql); $result = Database::query($sql);
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
$a_courses[$row['course_code']] = $row['course_code']; $courseList[$row['course_code']] = $row['course_code'];
} }
return $a_courses; return $courseList;
} }
/** /**

@ -10,7 +10,7 @@
ob_start(); ob_start();
$nameTools = 'Cours'; $nameTools = 'Cours';
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = array ('admin', 'registration', 'index', 'tracking'); $language_file = array('admin', 'registration', 'index', 'tracking');
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
@ -39,7 +39,8 @@ if (isset($_GET["user_id"]) && $_GET["user_id"] != "" && !isset($_GET["type"]))
$interbreadcrumb[] = array("url" => "teachers.php", "name" => get_lang('Teachers')); $interbreadcrumb[] = array("url" => "teachers.php", "name" => get_lang('Teachers'));
} }
function count_courses() { function count_courses()
{
global $nb_courses; global $nb_courses;
return $nb_courses; return $nb_courses;
} }
@ -49,7 +50,9 @@ $show_import_icon = false;
if (api_get_setting('add_users_by_coach') == 'true') { if (api_get_setting('add_users_by_coach') == 'true') {
if (!api_is_platform_admin()) { if (!api_is_platform_admin()) {
$sql = 'SELECT id_coach FROM '.Database :: get_main_table(TABLE_MAIN_SESSION).' WHERE id='.$id_session; $sql = 'SELECT id_coach
FROM '.Database::get_main_table(TABLE_MAIN_SESSION).'
WHERE id='.$id_session;
$rs = Database::query($sql); $rs = Database::query($sql);
if (Database::result($rs, 0, 0) != $_user['user_id']) { if (Database::result($rs, 0, 0) != $_user['user_id']) {
api_not_allowed(true); api_not_allowed(true);
@ -87,7 +90,7 @@ if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) {
$courses = Tracking::get_courses_list_from_session($id_session); $courses = Tracking::get_courses_list_from_session($id_session);
} }
$a_courses = array_keys($courses); $a_courses = array_keys($courses);
if (!api_is_session_admin()) { if (!api_is_session_admin()) {
$menu_items[] = Display::url(Display::return_icon('stats.png', get_lang('MyStats'),'',ICON_SIZE_MEDIUM),api_get_path(WEB_CODE_PATH)."auth/my_progress.php" ); $menu_items[] = Display::url(Display::return_icon('stats.png', get_lang('MyStats'),'',ICON_SIZE_MEDIUM),api_get_path(WEB_CODE_PATH)."auth/my_progress.php" );
@ -103,26 +106,30 @@ if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) {
} }
} }
echo '<div class="actions">'; echo '<div class="actions">';
$nb_menu_items = count($menu_items); $nb_menu_items = count($menu_items);
if ($nb_menu_items > 1) { if ($nb_menu_items > 1) {
foreach ($menu_items as $key => $item) { foreach ($menu_items as $key => $item) {
echo $item; echo $item;
} }
} }
if (count($a_courses) > 0) { if (count($a_courses) > 0) {
echo '<span style="float:right">'; echo '<span style="float:right">';
echo Display::url(Display::return_icon('printer.png', get_lang('Print'), array(), 32), 'javascript: void(0);', array('onclick'=>'javascript: window.print();')); echo Display::url(
echo '</span>'; Display::return_icon('printer.png', get_lang('Print'), array(), 32),
} 'javascript: void(0);',
array('onclick'=>'javascript: window.print();')
);
echo '</span>';
}
echo '</div>'; echo '</div>';
echo Display::page_header($title); echo Display::page_header($title);
} }
// Database Table Definitions // Database Table Definitions
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user_course = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_user_course = Database::get_main_table(TABLE_MAIN_COURSE_USER);
if (isset($_GET['action'])) { if (isset($_GET['action'])) {
if ($_GET['action'] == 'show_message') { if ($_GET['action'] == 'show_message') {
@ -130,19 +137,19 @@ if (isset($_GET['action'])) {
} }
if ($_GET['action'] == 'error_message') { if ($_GET['action'] == 'error_message') {
Display :: display_error_message(stripslashes($_GET['message']), false); Display :: display_error_message(stripslashes($_GET['message']), false);
} }
} }
if ($show_import_icon) { if ($show_import_icon) {
echo "<div align=\"right\">"; echo "<div align=\"right\">";
echo '<a href="user_import.php?id_session='.$id_session.'&action=export&amp;type=xml">'. echo '<a href="user_import.php?id_session='.$id_session.'&action=export&amp;type=xml">'.
Display::return_icon('excel.gif', get_lang('ImportUserListXMLCSV')).'&nbsp;'.get_lang('ImportUserListXMLCSV').'</a>'; Display::return_icon('excel.gif', get_lang('ImportUserListXMLCSV')).'&nbsp;'.get_lang('ImportUserListXMLCSV').'</a>';
echo "</div><br />"; echo "</div><br />";
} }
if (!api_is_drh() && !api_is_session_admin() && !api_is_platform_admin()) { if (!api_is_drh() && !api_is_session_admin() && !api_is_platform_admin()) {
$courses = Tracking::get_courses_followed_by_coach($_user['user_id'], $id_session); $courses = Tracking::get_courses_followed_by_coach($_user['user_id'], $id_session);
$a_courses = array_keys($courses); $a_courses = array_keys($courses);
} }
@ -155,9 +162,7 @@ if (empty($id_session) && api_is_drh() && !api_is_platform_admin()) {
} }
$nb_courses = count($a_courses); $nb_courses = count($a_courses);
$table = new SortableTable('tracking_list_course', 'count_courses', null, 1, 50); $table = new SortableTable('tracking_list_course', 'count_courses', null, 1, 50);
$table->set_header(0, get_lang('CourseTitle'), false); $table->set_header(0, get_lang('CourseTitle'), false);
$table->set_header(1, get_lang('NbStudents'), false); $table->set_header(1, get_lang('NbStudents'), false);
$table->set_header(2, get_lang('TimeSpentInTheCourse').Display :: return_icon('info3.gif', get_lang('TimeOfActiveByTraining'), array('align' => 'absmiddle', 'hspace' => '3px')), false); $table->set_header(2, get_lang('TimeSpentInTheCourse').Display :: return_icon('info3.gif', get_lang('TimeOfActiveByTraining'), array('align' => 'absmiddle', 'hspace' => '3px')), false);
@ -187,9 +192,18 @@ if (is_array($a_courses)) {
// students directly subscribed to the course // students directly subscribed to the course
if (empty($id_session)) { if (empty($id_session)) {
$sql = "SELECT user_id FROM $tbl_user_course as course_rel_user WHERE course_rel_user.status='5' AND course_rel_user.course_code='$course_code'"; $sql = "SELECT user_id
FROM $tbl_user_course as course_rel_user
WHERE
course_rel_user.status='5' AND
course_rel_user.course_code = '$course_code'";
} else { } else {
$sql = "SELECT id_user as user_id FROM $tbl_session_course_user srcu WHERE srcu. course_code='$course_code' AND id_session = '$id_session' AND srcu.status<>2"; $sql = "SELECT id_user as user_id
FROM $tbl_session_course_user srcu
WHERE
srcu. course_code='$course_code' AND
id_session = '$id_session' AND
srcu.status<>2";
} }
$rs = Database::query($sql); $rs = Database::query($sql);
@ -201,18 +215,17 @@ if (is_array($a_courses)) {
if (count($users) > 0) { if (count($users) > 0) {
$nb_students_in_course = count($users); $nb_students_in_course = count($users);
// tracking data // tracking data
$avg_progress_in_course = Tracking :: get_avg_student_progress ($users, $course_code, array(), $id_session); $avg_progress_in_course = Tracking :: get_avg_student_progress($users, $course_code, array(), $id_session);
$avg_score_in_course = Tracking :: get_avg_student_score ($users, $course_code, array(), $id_session); $avg_score_in_course = Tracking :: get_avg_student_score($users, $course_code, array(), $id_session);
$avg_time_spent_in_course = Tracking :: get_time_spent_on_the_course ($users, $course_code, $id_session); $avg_time_spent_in_course = Tracking :: get_time_spent_on_the_course($users, $course_code, $id_session);
$messages_in_course = Tracking :: count_student_messages ($users, $course_code, $id_session); $messages_in_course = Tracking :: count_student_messages($users, $course_code, $id_session);
$assignments_in_course = Tracking :: count_student_assignments ($users, $course_code, $id_session); $assignments_in_course = Tracking :: count_student_assignments($users, $course_code, $id_session);
$avg_time_spent_in_course = api_time_to_hms($avg_time_spent_in_course / $nb_students_in_course); $avg_time_spent_in_course = api_time_to_hms($avg_time_spent_in_course / $nb_students_in_course);
$avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2); $avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2);
if (is_numeric($avg_score_in_course)) { if (is_numeric($avg_score_in_course)) {
$avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2).'%'; $avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2).'%';
} }
} else { } else {
$avg_time_spent_in_course = null; $avg_time_spent_in_course = null;
$avg_progress_in_course = null; $avg_progress_in_course = null;

@ -210,6 +210,7 @@ if (empty($session_id)) {
// Getting courses followed by a coach (No session courses). // Getting courses followed by a coach (No session courses).
$courses = CourseManager::get_course_list_as_coach($user_id, false); $courses = CourseManager::get_course_list_as_coach($user_id, false);
// Courses with no session:
if (isset($courses[0])) { if (isset($courses[0])) {
$courses = $courses[0]; $courses = $courses[0];
} }
@ -325,7 +326,7 @@ if (empty($session_id)) {
// average posts // average posts
$nb_posts = $nb_posts / $nb_students; $nb_posts = $nb_posts / $nb_students;
echo Display::page_subheader('<img src="'.api_get_path(WEB_IMG_PATH).'teachers.gif">&nbsp;'.get_lang('Overview')); echo Display::page_subheader(get_lang('Overview'));
echo '<div class="report_section"> echo '<div class="report_section">
<table class="table table-bordered"> <table class="table table-bordered">
@ -344,7 +345,7 @@ if (empty($session_id)) {
</table>'; </table>';
echo '</div>'; echo '</div>';
echo Display::page_subheader(Display::return_icon('students.gif').'&nbsp;'.get_lang('Students').' ('.$nb_students.')'); echo Display::page_subheader(get_lang('Students').' ('.$nb_students.')');
if ($export_csv) { if ($export_csv) {
//csv part //csv part
@ -359,11 +360,10 @@ if (empty($session_id)) {
$csv_content[] = array(); $csv_content[] = array();
} else { } else {
$countActiveUsers = SessionManager::getCountUserTracking(null, 1);
$countInactiveUsers = SessionManager::getCountUserTracking(null, 0);
$lastConnectionDate = api_get_utc_datetime(strtotime('15 days ago')); $lastConnectionDate = api_get_utc_datetime(strtotime('15 days ago'));
$countActiveUsers = SessionManager::getCountUserTracking(null, 1);
$countInactiveUsers = SessionManager::getCountUserTracking(null, 0);
$countSleepingTeachers = SessionManager::getTeacherTracking(api_get_user_id(), 1, $lastConnectionDate, true); $countSleepingTeachers = SessionManager::getTeacherTracking(api_get_user_id(), 1, $lastConnectionDate, true);
$countSleepingStudents =SessionManager::getCountUserTracking(null, 1, $lastConnectionDate); $countSleepingStudents =SessionManager::getCountUserTracking(null, 1, $lastConnectionDate);
@ -393,7 +393,6 @@ if (empty($session_id)) {
<td>'.Display::url(get_lang('SleepingStudents'), api_get_path(WEB_CODE_PATH).'mySpace/student.php?sleeping_days=15').'</td> <td>'.Display::url(get_lang('SleepingStudents'), api_get_path(WEB_CODE_PATH).'mySpace/student.php?sleeping_days=15').'</td>
<td align="right">'.$countSleepingStudents.'</td> <td align="right">'.$countSleepingStudents.'</td>
</tr> </tr>
<tr> <tr>
<td>'.get_lang('AverageCoursePerStudent').'</td> <td>'.get_lang('AverageCoursePerStudent').'</td>
<td align="right">'.(is_null($avg_courses_per_student) ? '' : $avg_courses_per_student).'</td> <td align="right">'.(is_null($avg_courses_per_student) ? '' : $avg_courses_per_student).'</td>
@ -460,13 +459,13 @@ if (empty($session_id)) {
$courses = Tracking::get_courses_followed_by_coach($user_id, $session_id); $courses = Tracking::get_courses_followed_by_coach($user_id, $session_id);
} }
//Courses for the user // Courses for the user
$count_courses = count($courses); $count_courses = count($courses);
//Sessions for the user // Sessions for the user
$count_sessions = count($sessions); $count_sessions = count($sessions);
} }
/*
if ($count_courses || $count_sessions) { if ($count_courses || $count_sessions) {
//If we are in course //If we are in course
if (empty($session_id)) { if (empty($session_id)) {
@ -696,7 +695,7 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
STUDENT => get_lang('Student'), STUDENT => get_lang('Student'),
COURSEMANAGER => get_lang('CourseManager'), COURSEMANAGER => get_lang('CourseManager'),
DRH => get_lang('Drh'), DRH => get_lang('Drh'),
); );
$studentFilter->addElement('select', 'profile', get_lang('Profile'),$options, array('id' => 'profile')); $studentFilter->addElement('select', 'profile', get_lang('Profile'),$options, array('id' => 'profile'));
echo '<div class="">'; echo '<div class="">';
@ -751,32 +750,6 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
return returnValue; return returnValue;
} }
</script>'; </script>';
/*//profile filter
$profileFilter = new FormValidator('answer_filter', 'get', '', '', array('class'=> 'form-horizontal'), false);
$options = array(
STUDENT => get_lang('Student'),
COURSEMANAGER => get_lang('CourseManager'),
DRH => get_lang('Drh'),
);
$profileFilter->addElement('select', 'profile', get_lang('Profile'),$options, array('id' => 'profile'));
$courseListUrl = api_get_self();
echo '<div class="">';
echo $profileFilter->return_form();
echo '</div>';
echo '<script>
$(function() {
$("#profile").on("change", function() {
var sessionId = $("#session_name").val();
var courseId = $("#course_name").val();
var studentId = $("#student_name").val();
var profileId = $("#profile").val();
window.location = "'.$courseListUrl.'?view=admin&display='.$display.'&session_id="+sessionId+"&course_id="+courseId+"&student_id="+studentId+"&profile_id="+profileId;
});
});
</script>';*/
} }
if (in_array($display, array('surveyoverview'))) { if (in_array($display, array('surveyoverview'))) {
@ -1116,7 +1089,7 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
} }
$table->display(); $table->display();
} }
} }*/
// Send the csv file if asked // Send the csv file if asked
if ($export_csv) { if ($export_csv) {

@ -5,21 +5,19 @@
* @package chamilo.reporting * @package chamilo.reporting
*/ */
ob_start(); ob_start();
$nameTools= 'Sessions';
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = array ('registration', 'index', 'trad4all', 'tracking', 'admin'); $language_file = array('registration', 'index', 'trad4all', 'tracking', 'admin');
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'export.lib.inc.php'; require_once api_get_path(LIBRARY_PATH).'export.lib.inc.php';
api_block_anonymous_users(); api_block_anonymous_users();
$this_section = SECTION_TRACKING; $this_section = SECTION_TRACKING;
api_block_anonymous_users(); api_block_anonymous_users();
$htmlHeadXtra[] = api_get_jqgrid_js();
$interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace')); $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace'));
Display :: display_header($nameTools); Display::display_header(get_lang('Sessions'));
$export_csv = false; $export_csv = false;
@ -119,73 +117,38 @@ if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) {
$a_sessions = Tracking :: get_sessions_coached_by_user($id_coach); $a_sessions = Tracking :: get_sessions_coached_by_user($id_coach);
} }
$nb_sessions = count($a_sessions); $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions_tracking';
if ($export_csv) { //The order is important you need to check the the $column variable in the model.ajax.php file
$csv_content = array(); $columns = array(
} get_lang('Title'),
get_lang('Date'),
if ($nb_sessions > 0) { get_lang('NbCoursesPerSession'),
get_lang('NbStudentPerSession'),
$table = new SortableTable('tracking', 'count_sessions_coached'); get_lang('Details')
$table->set_header(0, get_lang('Title')); );
$table->set_header(1, get_lang('Date'));
$table->set_header(2, get_lang('NbCoursesPerSession')); // Column config
$table->set_header(3, get_lang('Details'), false); $columnModel = array(
array('name'=>'name', 'index'=>'name', 'width'=>'255', 'align'=>'left'),
$all_data = array(); array('name'=>'date', 'index'=>'date', 'width'=>'150', 'align'=>'left','sortable'=>'false'),
foreach ($a_sessions as $session) { array('name'=>'course_per_session', 'index'=>'course_per_session', 'width'=>'150','sortable'=>'false'),
$row = array(); array('name'=>'student_per_session', 'index'=>'student_per_session', 'width'=>'100','sortable'=>'false'),
$row[] = $session['name']; array('name'=>'details', 'index'=>'details', 'width'=>'100','sortable'=>'false'),
);
if ($session['date_start'] != '0000-00-00' && $session['date_end'] != '0000-00-00') {
$row[] = get_lang('From').' '. api_convert_and_format_date($session['date_start'], DATE_FORMAT_SHORT, date_default_timezone_get()).' '.get_lang('To').' '.api_convert_and_format_date($session['date_end'], DATE_FORMAT_SHORT, date_default_timezone_get()); $extraParams = array(
} else { 'autowidth' => 'true',
$row[] = ' - '; 'height' => 'auto'
} );
$row[] = count(Tracking::get_courses_list_from_session($session['id'])); $js = '<script>
$(function() {
if ($export_csv) { '.Display::grid_js('session_tracking', $url, $columns, $columnModel, $extraParams, array(), null, true).'
$csv_content[] = $row; });
} </script>';
if (isset($_GET['id_coach']) && $_GET['id_coach'] != '') { echo $js;
$row[] = '<a href="student.php?id_session='.$session['id'].'&id_coach='.intval($_GET['id_coach']).'"> echo Display::grid_html('session_tracking');
<img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a>';
} else {
$row[] = '<a href="course.php?id_session='.$session['id'].'">
<img src="'.api_get_path(WEB_IMG_PATH).'2rightarrow.gif" border="0" /></a>';
}
$all_data[] = $row;
}
if (!isset($tracking_column)) {
$tracking_column = 0;
}
if ($_GET['tracking_direction'] == 'DESC') {
usort($all_data, 'rsort_sessions');
} else {
usort($all_data, 'sort_sessions');
}
if ($export_csv) {
usort($csv_content, 'sort_sessions');
}
foreach ($all_data as $row) {
$table->addRow($row);
}
$table -> display();
if ($export_csv) {
ob_end_clean();
Export :: export_table_csv($csv_content, 'reporting_student_list');
exit;
}
} else {
echo get_lang('NoSession');
}
Display::display_footer(); Display::display_footer();

Loading…
Cancel
Save