|
@@ -1774,16 +1774,17 @@ class Tracking
|
|
|
|
|
|
/**
|
|
|
* Get count student's exercise progress
|
|
|
- * @param int user id
|
|
|
- * @param string course code
|
|
|
- * @param int session id
|
|
|
+ *
|
|
|
+ * @param array $exercise_list
|
|
|
+ * @param int $user_id
|
|
|
+ * @param string $course_code
|
|
|
+ * @param int $session_id
|
|
|
*/
|
|
|
-
|
|
|
public static function get_exercise_student_progress($exercise_list, $user_id, $course_code, $session_id)
|
|
|
{
|
|
|
- $course_code = Database::escape_string($course_code);
|
|
|
- $user_id = intval($user_id);
|
|
|
- $session_id = intval($session_id);
|
|
|
+ $course_code = Database::escape_string($course_code);
|
|
|
+ $user_id = intval($user_id);
|
|
|
+ $session_id = intval($session_id);
|
|
|
|
|
|
if (empty($exercise_list)) {
|
|
|
return '0%';
|
|
@@ -1794,10 +1795,13 @@ class Tracking
|
|
|
|
|
|
$exercise_list_imploded = implode("' ,'", $exercise_list);
|
|
|
|
|
|
- $sql = "SELECT COUNT(DISTINCT ex.exe_exo_id) FROM $tbl_stats_exercices AS ex
|
|
|
- WHERE ex.exe_cours_id = '$course_code' AND
|
|
|
- ex.session_id = $session_id AND
|
|
|
- ex.exe_user_id = $user_id AND ex.exe_exo_id IN ('$exercise_list_imploded') ";
|
|
|
+ $sql = "SELECT COUNT(DISTINCT ex.exe_exo_id)
|
|
|
+ FROM $tbl_stats_exercices AS ex
|
|
|
+ WHERE
|
|
|
+ ex.exe_cours_id = '$course_code' AND
|
|
|
+ ex.session_id = $session_id AND
|
|
|
+ ex.exe_user_id = $user_id AND
|
|
|
+ ex.exe_exo_id IN ('$exercise_list_imploded') ";
|
|
|
|
|
|
$rs = Database::query($sql);
|
|
|
$count = 0;
|
|
@@ -5704,7 +5708,7 @@ class TrackingCourseLog
|
|
|
*/
|
|
|
public static function get_user_data($from, $number_of_items, $column, $direction)
|
|
|
{
|
|
|
- global $user_ids, $course_code, $additional_user_profile_info, $export_csv, $is_western_name_order, $csv_content, $session_id, $_configuration;
|
|
|
+ global $user_ids, $course_code, $additional_user_profile_info, $export_csv, $is_western_name_order, $csv_content, $session_id;
|
|
|
|
|
|
$course_code = Database::escape_string($course_code);
|
|
|
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
|
|
@@ -5713,7 +5717,6 @@ class TrackingCourseLog
|
|
|
$access_url_id = api_get_current_access_url_id();
|
|
|
|
|
|
// get all users data from a course for sortable with limit
|
|
|
- $condition_user = "";
|
|
|
if (is_array($user_ids)) {
|
|
|
$user_ids = array_map('intval', $user_ids);
|
|
|
$condition_user = " WHERE user.user_id IN (".implode(',',$user_ids).") ";
|
|
@@ -5724,19 +5727,26 @@ class TrackingCourseLog
|
|
|
|
|
|
if (!empty($_GET['user_keyword'])) {
|
|
|
$keyword = trim(Database::escape_string($_GET['user_keyword']));
|
|
|
- $condition_user .= " AND (user.firstname LIKE '%".$keyword."%' OR user.lastname LIKE '%".$keyword."%' OR user.username LIKE '%".$keyword."%' OR user.email LIKE '%".$keyword."%' ) ";
|
|
|
+ $condition_user .= " AND (
|
|
|
+ user.firstname LIKE '%".$keyword."%' OR
|
|
|
+ user.lastname LIKE '%".$keyword."%' OR
|
|
|
+ user.username LIKE '%".$keyword."%' OR
|
|
|
+ user.email LIKE '%".$keyword."%'
|
|
|
+ ) ";
|
|
|
}
|
|
|
|
|
|
+ $url_table = null;
|
|
|
+ $url_condition = null;
|
|
|
if (api_is_multiple_url_enabled()) {
|
|
|
$url_table = ", ".$tbl_url_rel_user."as url_users";
|
|
|
$url_condition = " AND user.user_id = url_users.user_id AND access_url_id='$access_url_id'";
|
|
|
}
|
|
|
|
|
|
$sql = "SELECT user.user_id as user_id,
|
|
|
- user.official_code as col0,
|
|
|
- user.lastname as col1,
|
|
|
- user.firstname as col2,
|
|
|
- user.username as col3
|
|
|
+ user.official_code as col0,
|
|
|
+ user.lastname as col1,
|
|
|
+ user.firstname as col2,
|
|
|
+ user.username as col3
|
|
|
FROM $tbl_user as user $url_table
|
|
|
$condition_user $url_condition";
|
|
|
|
|
@@ -5746,7 +5756,7 @@ class TrackingCourseLog
|
|
|
|
|
|
$column = intval($column);
|
|
|
|
|
|
- $from = intval($from);
|
|
|
+ $from = intval($from);
|
|
|
$number_of_items = intval($number_of_items);
|
|
|
|
|
|
$sql .= " ORDER BY col$column $direction ";
|
|
@@ -5754,20 +5764,25 @@ class TrackingCourseLog
|
|
|
|
|
|
$res = Database::query($sql);
|
|
|
$users = array();
|
|
|
- $t = time();
|
|
|
|
|
|
$course_info = api_get_course_info($course_code);
|
|
|
$total_surveys = 0;
|
|
|
- $total_exercises = get_all_exercises($course_info, $session_id);
|
|
|
+ $total_exercises = get_all_exercises(
|
|
|
+ $course_info,
|
|
|
+ $session_id
|
|
|
+ );
|
|
|
|
|
|
if (empty($session_id)) {
|
|
|
$survey_user_list = array();
|
|
|
$survey_list = survey_manager::get_surveys($course_code, $session_id);
|
|
|
|
|
|
$total_surveys = count($survey_list);
|
|
|
- $survey_data = array();
|
|
|
foreach ($survey_list as $survey) {
|
|
|
- $user_list = survey_manager::get_people_who_filled_survey($survey['survey_id'], false, $course_info['real_id']);
|
|
|
+ $user_list = survey_manager::get_people_who_filled_survey(
|
|
|
+ $survey['survey_id'],
|
|
|
+ false,
|
|
|
+ $course_info['real_id']
|
|
|
+ );
|
|
|
|
|
|
foreach ($user_list as $user_id) {
|
|
|
isset($survey_user_list[$user_id]) ? $survey_user_list[$user_id]++ : $survey_user_list[$user_id] = 1;
|
|
@@ -5782,18 +5797,40 @@ class TrackingCourseLog
|
|
|
$user['username'] = $user['col3'];
|
|
|
$user['time'] = api_time_to_hms(Tracking::get_time_spent_on_the_course($user['user_id'], $course_code, $session_id));
|
|
|
|
|
|
- $avg_student_score = Tracking::get_avg_student_score($user['user_id'], $course_code, array(), $session_id);
|
|
|
+ $avg_student_score = Tracking::get_avg_student_score(
|
|
|
+ $user['user_id'],
|
|
|
+ $course_code,
|
|
|
+ array(),
|
|
|
+ $session_id
|
|
|
+ );
|
|
|
|
|
|
- $avg_student_progress = Tracking::get_avg_student_progress($user['user_id'], $course_code, array(), $session_id);
|
|
|
+ $avg_student_progress = Tracking::get_avg_student_progress(
|
|
|
+ $user['user_id'],
|
|
|
+ $course_code,
|
|
|
+ array(),
|
|
|
+ $session_id
|
|
|
+ );
|
|
|
if (empty($avg_student_progress)) {
|
|
|
$avg_student_progress=0;
|
|
|
}
|
|
|
$user['average_progress'] = $avg_student_progress.'%';
|
|
|
|
|
|
- $total_user_exercise = Tracking::get_exercise_student_progress($total_exercises, $user['user_id'], $course_code, $session_id);
|
|
|
+ $total_user_exercise = Tracking::get_exercise_student_progress(
|
|
|
+ $total_exercises,
|
|
|
+ $user['user_id'],
|
|
|
+ $course_code,
|
|
|
+ $session_id
|
|
|
+ );
|
|
|
+
|
|
|
$user['exercise_progress'] = $total_user_exercise;
|
|
|
|
|
|
- $total_user_exercise = Tracking::get_exercise_student_average_best_attempt($total_exercises, $user['user_id'], $course_code, $session_id);
|
|
|
+ $total_user_exercise = Tracking::get_exercise_student_average_best_attempt(
|
|
|
+ $total_exercises,
|
|
|
+ $user['user_id'],
|
|
|
+ $course_code,
|
|
|
+ $session_id
|
|
|
+ );
|
|
|
+
|
|
|
$user['exercise_average_best_attempt'] = $total_user_exercise;
|
|
|
|
|
|
if (is_numeric($avg_student_score)) {
|
|
@@ -5811,7 +5848,9 @@ class TrackingCourseLog
|
|
|
$user['additional'] = '';
|
|
|
|
|
|
if (isset($_GET['additional_profile_field']) AND is_numeric($_GET['additional_profile_field'])) {
|
|
|
- if (isset($additional_user_profile_info[$user['user_id']]) && is_array($additional_user_profile_info[$user['user_id']])) {
|
|
|
+ if (isset($additional_user_profile_info[$user['user_id']]) &&
|
|
|
+ is_array($additional_user_profile_info[$user['user_id']])
|
|
|
+ ) {
|
|
|
$user['additional'] = implode(', ', $additional_user_profile_info[$user['user_id']]);
|
|
|
}
|
|
|
}
|