exercise progress report BT#7017

1.9.x
César Perales 12 years ago
parent e2bf21e818
commit fe52670fcd
  1. 3
      main/inc/ajax/model.ajax.php
  2. 8
      main/inc/lib/sessionmanager.lib.php
  3. 32
      main/mySpace/index.php
  4. 4
      main/mySpace/myspace.lib.php

@ -621,6 +621,7 @@ switch ($action) {
$sessionId = intval($_GET['session_id']);
$courseId = intval($_GET['course_id']);
$exerciseId = intval($_GET['exercise_id']);
$answer = intval($_GET['answer']);
}
$columns = array(
@ -637,7 +638,7 @@ switch ($action) {
'correct'
);
$result = SessionManager::get_exercise_progress($sessionId, $courseId, $exerciseId,
$result = SessionManager::get_exercise_progress($sessionId, $courseId, $exerciseId, $answer,
array(
'where' => $where_condition,
'order' => "$sidx $sord",

@ -506,7 +506,7 @@ class SessionManager
* @param int session id
* @return array
*/
public static function get_exercise_progress($sessionId = 0, $courseId = 0, $exerciseId = 0, $options = array())
public static function get_exercise_progress($sessionId = 0, $courseId = 0, $exerciseId = 0, $answer = 2, $options = array())
{
$session = Database::get_main_table(TABLE_MAIN_SESSION);
$user = Database::get_main_table(TABLE_MAIN_USER);
@ -521,6 +521,11 @@ class SessionManager
$where = " WHERE a.session_id = %d
AND a.course_code = '%s'
AND q.id = %d";
if ($answer != 2)
{
$where .= sprintf(' AND qa.correct = %d', $answer);
}
$limit = null;
if (!empty($options['limit'])) {
@ -556,7 +561,6 @@ class SessionManager
INNER JOIN $quiz q ON q.id = e.exe_exo_id
INNER JOIN $user u ON u.user_id = a.user_id
$where $order $limit";
$sql_query = sprintf($sql, $sessionId, $course['code'], $exerciseId);
$rs = Database::query($sql_query);

@ -685,9 +685,9 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
});
</script>';
}
//exercise
if (in_array($display, array('exerciseprogress')))
{
//exercise
$exerciseFilter = new FormValidator('student_filter', 'get', '', '', array('class'=> 'form-search'), false);
$url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=search_exercise_by_course&session_id=' . $_GET['session_id'] . '&course_id=' . $_GET['course_id'];
$exerciseList = array();
@ -714,6 +714,33 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
});
});
</script>';
//answer Type
$answerFilter = new FormValidator('answer_filter', 'get', '', '', array('class'=> 'form-search'), false);
$options = array(
2 => get_lang('all'),
0 => get_lang('incorrect'),
1 => get_lang('correct'),
);
$answerFilter->addElement('select', 'answer', get_lang('Answer'),$options, array('id' => 'answer'));
$courseListUrl = api_get_self();
echo '<div class="">';
echo $answerFilter->return_form();
echo '</div>';
echo '<script>
$(function() {
$("#answer").on("change", function() {
var sessionId = $("#session_name").val();
var courseId = $("#course_name").val();
var exerciseId = $("#exercise_name").val();
var answerType = $("#answer").val();
window.location = "'.$courseListUrl.'?view=admin&display='.$display.'&session_id="+sessionId+"&course_id="+courseId+"&exercise_id="+exerciseId+"&answer="+answerType;
});
});
</script>';
}
}
@ -772,7 +799,8 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
{
if (!empty($_GET['exercise_id']))
{
echo MySpace::display_tracking_exercise_progress_overview(intval($_GET['session_id']), intval($_GET['course_id']), intval($_GET['exercise_id']));
$answer = (isset($_GET['answer'])) ? intval($_GET['answer']) : 2;
echo MySpace::display_tracking_exercise_progress_overview(intval($_GET['session_id']), intval($_GET['course_id']), intval($_GET['exercise_id']), $answer);
} else
{
Display::display_warning_message(get_lang('ChooseExercise'));

@ -335,7 +335,7 @@ class MySpace {
* Display a sortable table that contains an overview off all the progress of the user in a session
* @author César Perales <cesar.perales@beeznest.com>, Beeznest Team
*/
function display_tracking_exercise_progress_overview($sessionId = 0, $courseId = 0, $exerciseId = 0) {
function display_tracking_exercise_progress_overview($sessionId = 0, $courseId = 0, $exerciseId = 0, $answer = 2) {
/**
* Column name
@ -375,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) . '&exercise_id=' . intval($exerciseId);
$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) . '&answer=' . intval($answer);
$tableId = 'exerciseProgressOverview';
$table = Display::grid_js($tableId, $url, $columns, $column_model, $extra_params, array(), $action_links, true);

Loading…
Cancel
Save