From 431300a29039ca226148f90a0e5d97f31aaa386f Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Wed, 23 Feb 2011 12:25:32 +0100 Subject: [PATCH] Fixing \"Exercise done\" column see BT#2105 --- main/inc/lib/events.lib.inc.php | 26 +++++++++++++++++++++++++- main/inc/lib/tracking.lib.php | 3 ++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/main/inc/lib/events.lib.inc.php b/main/inc/lib/events.lib.inc.php index 7a7a3a48ea..df1d8a4302 100755 --- a/main/inc/lib/events.lib.inc.php +++ b/main/inc/lib/events.lib.inc.php @@ -727,6 +727,7 @@ function get_all_exercise_results_by_course($course_code, $session_id = 0, $get_ } + /** * Gets all exercise results (NO Exercises in LPs) from a given exercise id, course, session * @param int exercise id @@ -778,7 +779,6 @@ function count_exercise_attempts_by_user($user_id, $exercise_id, $course_code, $ $user_id = intval($user_id); $sql = "SELECT count(*) as count FROM $TABLETRACK_EXERCICES WHERE status = '' AND exe_user_id = '$user_id' AND exe_cours_id = '$course_code' AND exe_exo_id = '$exercise_id' AND session_id = $session_id AND orig_lp_id =0 AND orig_lp_item_id = 0 ORDER BY exe_id"; - //echo '
'; $res = Database::query($sql); $result = 0; @@ -838,6 +838,30 @@ function get_best_exercise_results_by_user($exercise_id, $course_code, $session_ } +/** + * Gets all exercise BEST results attempts (NO Exercises in LPs ) from a given exercise id, course, session per user + * @param int exercise id + * @param string course code + * @param int session id + * @return array with the results + * + */ +function get_count_exercises_attempted_by_course($course_code, $session_id = 0) { + $table_track_exercises = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES); + $table_track_attempt = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT); + $course_code = Database::escape_string($course_code); + $session_id = intval($session_id); + + $sql = "SELECT DISTINCT exe_exo_id, exe_user_id FROM $table_track_exercises WHERE status = '' AND exe_cours_id = '$course_code' AND session_id = $session_id AND orig_lp_id =0 AND orig_lp_item_id = 0 ORDER BY exe_id"; + $res = Database::query($sql); + $count = 0; + if (Database::num_rows($res) > 0) { + $count = Database::num_rows($res); + } + return $count; +} + + /** * Gets all exercise events from a Learning Path within a Course nd Session * @param int exercise id diff --git a/main/inc/lib/tracking.lib.php b/main/inc/lib/tracking.lib.php index dec619c1e5..4a0e16ca8f 100755 --- a/main/inc/lib/tracking.lib.php +++ b/main/inc/lib/tracking.lib.php @@ -2036,7 +2036,8 @@ class Tracking { //All exercises in the course @todo change for a real count $exercises = count(get_all_exercises($enreg, $key)); //Count of user results - $done_exercises = get_all_exercise_results_by_course($enreg['code'], $key); + //$done_exercises = get_best_exercise_results_by_course($enreg['code'], $key); + $done_exercises = get_count_exercises_attempted_by_course($enreg['code'], $key); //Average $average = get_average_score_by_course($enreg['code'], $key);