exercise progress report, session not mandatory

1.9.x
César Perales 12 years ago
parent 293e095724
commit abe3e3eb22
  1. 17
      main/exercice/exercise.lib.php
  2. 3
      main/inc/ajax/course.ajax.php
  3. 2
      main/inc/ajax/model.ajax.php
  4. 8
      main/inc/lib/sessionmanager.lib.php
  5. 13
      main/mySpace/index.php

@ -1420,7 +1420,7 @@ function convert_score($score, $weight) {
* @param string Search exercise name
* @return array array with exercise data
*/
function get_all_exercises($course_info = null, $session_id = 0, $check_publication_dates = false, $search_exercise = '') {
function get_all_exercises($course_info = null, $session_id = 0, $check_publication_dates = false, $search_exercise = '', $search_all_sessions = false) {
$TBL_EXERCICES = Database :: get_course_table(TABLE_QUIZ_TEST);
$course_id = api_get_course_int_id();
@ -1445,11 +1445,16 @@ function get_all_exercises($course_info = null, $session_id = 0, $check_publicat
$needle_where = (!empty($search_exercise)) ? " AND title LIKE '?' " : '';
$needle = (!empty($search_exercise)) ? "%" . $search_exercise . "%" : '';
if ($session_id == 0) {
$conditions = array('where'=>array('active = ? AND session_id = ? AND c_id = ? '. $needle_where . $time_conditions => array('1', $session_id, $course_id, $needle)), 'order'=>'title');
} else {
//All exercises
$conditions = array('where'=>array('active = ? AND (session_id = 0 OR session_id = ? ) AND c_id = ? ' . $needle_where . $time_conditions => array('1', $session_id, $course_id, $needle)), 'order'=>'title');
if ($search_all_sessions == true)
{
$conditions = array('where'=>array('active = ? AND c_id = ? '. $needle_where . $time_conditions => array('1', $course_id, $needle)), 'order'=>'title');
} else
{
if ($session_id == 0) {
$conditions = array('where'=>array('active = ? AND session_id = ? AND c_id = ? '. $needle_where . $time_conditions => array('1', $session_id, $course_id, $needle)), 'order'=>'title');
} else {
$conditions = array('where'=>array('active = ? AND (session_id = 0 OR session_id = ? ) AND c_id = ? ' . $needle_where . $time_conditions => array('1', $session_id, $course_id, $needle)), 'order'=>
}
}
return Database::select('*',$TBL_EXERCICES, $conditions);
}

@ -155,7 +155,8 @@ switch ($action) {
$course = api_get_course_info_by_id($_GET['course_id']);
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$exercises = get_all_exercises($course, intval($_GET['session_id']), false, $_GET['q']);
$session_id = (!empty($_GET['session_id'])) ? intval($_GET['session_id']) : 0 ;
$exercises = get_all_exercises($course, $session_id, false, $_GET['q'], true);
foreach ($exercises as $exercise)
{

@ -621,7 +621,7 @@ switch ($action) {
break;
case 'get_exercise_progress':
$sessionId = 0;
if (!empty($_GET['course_id']) && !empty($_GET['session_id']) && !empty($_GET['exercise_id']))
if (!empty($_GET['course_id']) && !empty($_GET['exercise_id']))
{
$sessionId = intval($_GET['session_id']);
$courseId = intval($_GET['course_id']);

@ -516,10 +516,12 @@ class SessionManager
$table_stats_exercises = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$table_stats_attempt = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$course = api_get_course_info_by_id($courseId);
$exercise = current(get_exercise_by_id($exerciseId));
$where = " WHERE a.session_id = %d
AND a.course_code = '%s'
$where = " WHERE a.course_code = '%s'
AND q.id = %d";
if ($answer != 2)
@ -561,7 +563,7 @@ 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);
$sql_query = sprintf($sql, $course['code'], $exercise['title']);
$rs = Database::query($sql_query);
while ($row = Database::fetch_array($rs))

@ -635,7 +635,13 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
if (in_array($display, array('accessoverview','lpprogressoverview', 'progressoverview', 'exerciseprogress', 'surveyoverview')))
{
$courseFilter = new FormValidator('course_filter', 'get', '', '', array('class'=> 'form-horizontal'), false);
$url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=search_course_by_session&session_id=' . $_GET['session_id'];
$a = 'search_course_by_session';
if ( $display = 'exerciseprogress')
{
$a = 'search_course';
}
$url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a='. $a .'&session_id=' . $_GET['session_id'];
$courseList = array();
$courseId = isset($_GET['course_id']) ? $_GET['course_id'] : null;
if (!empty($courseId)) {
@ -912,8 +918,6 @@ 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['course_id']))
{
if (!empty($_GET['exercise_id']))
@ -928,9 +932,6 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst
{
Display::display_warning_message(get_lang('ChooseCourse'));
}
} else {
Display::display_warning_message(get_lang('ChooseSession'));
}
} else if($display == 'surveyoverview') {
if (!empty($_GET['session_id']))
{

Loading…
Cancel
Save