From 2189b17ad81e00a9a1332fe79e0362fe3096582a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Perales?= Date: Wed, 18 Dec 2013 17:21:05 -0500 Subject: [PATCH] exercises report BT#7017 --- main/inc/ajax/model.ajax.php | 11 ++++++----- main/inc/lib/sessionmanager.lib.php | 7 ++++--- main/mySpace/index.php | 11 +++++++++-- main/mySpace/myspace.lib.php | 7 ++----- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/main/inc/ajax/model.ajax.php b/main/inc/ajax/model.ajax.php index 93b30e37ed..74a234b177 100644 --- a/main/inc/ajax/model.ajax.php +++ b/main/inc/ajax/model.ajax.php @@ -251,7 +251,7 @@ switch ($action) { break; case 'get_exercise_progress': //@TODO replace this for a more efficient function (not retrieving the whole data) - $records = SessionManager::get_exercise_progress(intval($_GET['session_id']), intval($_GET['session_id'])); + $records = SessionManager::get_exercise_progress(intval($_GET['session_id']), intval($_GET['course_id']), intval($_GET['exercise_id'])); $count = count($records); break; case 'get_session_access_overview': @@ -597,10 +597,11 @@ switch ($action) { break; case 'get_exercise_progress': $sessionId = 0; - if (!empty($_GET['course_id']) && !empty($_GET['session_id'])) + if (!empty($_GET['course_id']) && !empty($_GET['session_id']) && !empty($_GET['exercise_id'])) { - $sessionId = intval($_GET['session_id']); - $courseId = intval($_GET['course_id']); + $sessionId = intval($_GET['session_id']); + $courseId = intval($_GET['course_id']); + $exerciseId = intval($_GET['exercise_id']); } $columns = array( @@ -617,7 +618,7 @@ switch ($action) { 'correct' ); - $result = SessionManager::get_exercise_progress($sessionId, $courseId, + $result = SessionManager::get_exercise_progress($sessionId, $courseId, $exerciseId, array( 'where' => $where_condition, 'order' => "$sidx $sord", diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 3620682807..7e3e5f93ff 100644 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -506,7 +506,7 @@ class SessionManager * @param int session id * @return array */ - public static function get_exercise_progress($sessionId = 0, $courseId = 0, $options = array()) + public static function get_exercise_progress($sessionId = 0, $courseId = 0, $exerciseId = 0, $options = array()) { $session = Database::get_main_table(TABLE_MAIN_SESSION); $user = Database::get_main_table(TABLE_MAIN_USER); @@ -519,7 +519,8 @@ class SessionManager $course = api_get_course_info_by_id($courseId); $where = " WHERE a.session_id = %d - AND a.course_code = '%s'"; + AND a.course_code = '%s' + AND q.id = %d"; $limit = null; if (!empty($options['limit'])) { @@ -557,7 +558,7 @@ class SessionManager $where $order $limit"; - $sql_query = sprintf($sql, $sessionId, $course['code']); + $sql_query = sprintf($sql, $sessionId, $course['code'], $exerciseId); $rs = Database::query($sql_query); while ($row = Database::fetch_array($rs)) diff --git a/main/mySpace/index.php b/main/mySpace/index.php index 48f029b885..2af24685c3 100644 --- a/main/mySpace/index.php +++ b/main/mySpace/index.php @@ -736,10 +736,17 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst Display::display_warning_message(get_lang('ChooseSession')); } } else if($display == 'exerciseprogress') { - if (!empty($_GET['session_id'])) { + if (!empty($_GET['session_id'])) + { if (!empty($_GET['course_id'])) { - echo MySpace::display_tracking_exercise_progress_overview(intval($_GET['session_id']), intval($_GET['course_id'])); + if (!empty($_GET['exercise_id'])) + { + echo MySpace::display_tracking_exercise_progress_overview(intval($_GET['session_id']), intval($_GET['course_id']), intval($_GET['exercise_id'])); + } else + { + Display::display_warning_message(get_lang('ChooseExercise')); + } } else { Display::display_warning_message(get_lang('ChooseCourse')); diff --git a/main/mySpace/myspace.lib.php b/main/mySpace/myspace.lib.php index 36893dd919..7712373838 100644 --- a/main/mySpace/myspace.lib.php +++ b/main/mySpace/myspace.lib.php @@ -335,11 +335,8 @@ class MySpace { * Display a sortable table that contains an overview off all the progress of the user in a session * @author César Perales , Beeznest Team */ - function display_tracking_exercise_progress_overview($sessionId = 0, $courseId = 0) { + function display_tracking_exercise_progress_overview($sessionId = 0, $courseId = 0, $exerciseId = 0) { - $courses = SessionManager::get_course_list_by_session_id($sessionId); - //TODO let select course - $course = current($courses); /** * Column name * The order is important you need to check the $column variable in the model.ajax.php file @@ -378,7 +375,7 @@ class MySpace { $action_links = ''; // jqgrid will use this URL to do the selects - $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_exercise_progress&session_id=' . intval($sessionId) . '&course_id=' . intval($courseId) ; + $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_exercise_progress&session_id=' . intval($sessionId) . '&course_id=' . intval($courseId) . '&exercise_id=' . intval($exerciseId); $tableId = 'exerciseProgressOverview'; $table = Display::grid_js($tableId, $url, $columns, $column_model, $extra_params, array(), $action_links, true);