Fixing tip bubble in exercise, + showing the status of the exercise result

skala
Julio Montoya 14 years ago
parent 40c7912969
commit 2863bb7ac1
  1. 38
      main/exercice/exercice.php
  2. 13
      main/exercice/exercise.lib.php
  3. 36
      main/exercice/exercise_report.php
  4. 29
      main/inc/lib/events.lib.inc.php

@ -115,14 +115,6 @@ if ($page < 0) {
}
//Deleting an attempt
if ($_GET['delete'] == 'delete' && ($is_allowedToEdit || api_is_coach()) && !empty ($_GET['did']) && $_GET['did'] == strval(intval($_GET['did']))) {
$sql = 'DELETE FROM ' . Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES) . ' WHERE exe_id = ' . $_GET['did']; //_GET[did] filtered by entry condition
Database::query($sql);
$filter=Security::remove_XSS($_GET['filter']);
header('Location: exercice.php?cidReq=' . Security::remove_XSS($_GET['cidReq']) . '&show=result&filter=' . $filter . '&exerciseId='.$exerciseId.'&filter_by_user='.$_GET['filter_by_user']);
exit;
}
if (!empty($_GET['gradebook']) && $_GET['gradebook']=='view' ) {
$_SESSION['gradebook']=Security::remove_XSS($_GET['gradebook']);
@ -456,7 +448,8 @@ if (!empty($exercise_list)) {
$count = 0;
if (!empty($exercise_list))
foreach ($exercise_list as $row) {
foreach ($exercise_list as $row) {
$my_exercise_id = $row['id'];
//echo '<div id="tabs-'.$i.'">';
$i++;
//validacion when belongs to a session
@ -539,11 +532,13 @@ if (!empty($exercise_list)) {
$title = Display::tag('font', $row['title'], array('style'=>'color:grey'));
} else {
$title = $row['title'];
}
$count = count_exercise_result($exid, $course_code, $session_id);
}
$count = intval(count_exercise_result_not_validated($my_exercise_id, $course_code, $session_id));
$class_tip = '';
if ($count) {
$results_text = $count == 1 ? get_lang('Result') : get_lang('Results');
if (!empty($count)) {
$results_text = $count == 1 ? get_lang('ResultNotRevised') : get_lang('ResultsNotRevised');
$title .= '<span class="tooltip" style="display: none;">'.$count.' '.$results_text.' </span>';
$class_tip = 'link_tooltip';
}
@ -551,18 +546,15 @@ if (!empty($exercise_list)) {
$url = '<a class="'.$class_tip.'" id="tooltip_'.$row['id'].'" href="overview.php?'.api_get_cidreq().$myorigin.$mylpid.$mylpitemid.'&exerciseId='.$row['id'].'"><img src="../img/quiz.gif" /> '.$title.' </a>'.$lp_blocked;
$item = Display::tag('td', $url.' '.$session_img);
$exid = $row['id'];
//count number exercice - teacher
$sqlquery = "SELECT count(*) FROM $TBL_EXERCICE_QUESTION WHERE c_id = $course_id AND exercice_id = $exid";
$sqlquery = "SELECT count(*) FROM $TBL_EXERCICE_QUESTION WHERE c_id = $course_id AND exercice_id = $my_exercise_id";
$sqlresult = Database::query($sqlquery);
$rowi = Database :: result($sqlresult, 0);
$rowi = Database :: result($sqlresult, 0);
if ($session_id == $row['session_id']) {
//Settings
//$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'exercise_admin.php?'.api_get_cidreq().'&modifyExercise=yes&exerciseId='.$row['id']);
//Settings
$actions = Display::url(Display::return_icon('edit.png',get_lang('Edit'),'',22), 'admin.php?'.api_get_cidreq().'&exerciseId='.$row['id']);
$actions .='<a href="exercise_report.php?' . api_get_cidreq() . '&exerciseId='.$row['id'].'">'.Display :: return_icon('test_results.png', get_lang('Results'),'',22).'</a>';
//Export
@ -600,12 +592,12 @@ if (!empty($exercise_list)) {
}
if ($row['random_by_category'] > 0) {
if (!class_exists("testcategory.class.php")) include_once "testcategory.class.php" ;
$nbQuestionsTotal = Testcategory::getNumberOfQuestionRandomByCategory($exid, $random_number_of_question);
$nbQuestionsTotal = Testcategory::getNumberOfQuestionRandomByCategory($my_exercise_id, $random_number_of_question);
$number_of_questions .= $nbQuestionsTotal." ";
$number_of_questions .= ($nbQuestionsTotal > 1) ? get_lang("QuestionsLowerCase") : get_lang("QuestionLowerCase") ;
$number_of_questions .= " - ";
//$number_of_questions .= Testcategory::getNumberMaxQuestionByCat($exid).' '.get_lang('QuestionByCategory');
$number_of_questions .= min(Testcategory::getNumberMaxQuestionByCat($exid), $random_number_of_question).' '.get_lang('QuestionByCategory');
//$number_of_questions .= Testcategory::getNumberMaxQuestionByCat($my_exercise_id).' '.get_lang('QuestionByCategory');
$number_of_questions .= min(Testcategory::getNumberMaxQuestionByCat($my_exercise_id), $random_number_of_question).' '.get_lang('QuestionByCategory');
} else {
$random_label = ' ('.get_lang('Random').') ';
$number_of_questions = $random_number_of_question . ' ' .$random_label.' '.$textByCategory;

@ -879,10 +879,9 @@ function get_exam_results_data($from, $number_of_items, $column, $direction) {
}
$first_and_last_name = api_is_western_name_order() ? "firstname as col0, lastname col1" : "lastname as col0, firstname as col1";
//
// sql for chamilo-type tests for teacher / tutor view
//
$sql = "SELECT
user_id,
$first_and_last_name,
@ -913,7 +912,7 @@ function get_exam_results_data($from, $number_of_items, $column, $direction) {
// sql for hotpotatoes tests for teacher / tutor view
$hpsql="SELECT
$hpsql = "SELECT
$first_and_last_name ,
username,
tth.exe_name,
@ -1096,7 +1095,7 @@ function get_exam_results_data($from, $number_of_items, $column, $direction) {
}
// Date conversion
if ($is_allowedToEdit || $is_tutor) {
$date_list = api_get_local_time($results[$i]['col4']). ' / ' . api_get_local_time($results[$i]['exdate']);
$date_list = api_get_local_time($results[$i]['col6']). ' / ' . api_get_local_time($results[$i]['exdate']);
} else {
$date_list = api_get_local_time($results[$i]['col2']). ' / ' . api_get_local_time($results[$i]['exdate']);
}
@ -1137,7 +1136,6 @@ function get_exam_results_data($from, $number_of_items, $column, $direction) {
$html_link.='&nbsp;';
}
} else {
$attempt_url = api_get_path(WEB_CODE_PATH).'exercice/result.php?'.api_get_cidreq().'&id='.$results[$i]['exid'].'&id_session='.api_get_session_id().'&height=500&width=750';
$attempt_link = Display::url(get_lang('Show'), $attempt_url, array('class'=>'thickbox'))."&nbsp;&nbsp;&nbsp;";
@ -1151,7 +1149,8 @@ function get_exam_results_data($from, $number_of_items, $column, $direction) {
}
$more_details_list = $html_link;
if ($is_allowedToEdit || $is_tutor) {
$list_info[] = array($user_first_name,$user_last_name,$user_login,$user_groups,$quiz_name_list,$duration_list,$date_list,$result_list,$more_details_list);
$revised = $revised ? get_lang('Revised') : get_lang('NotRevised');
$list_info[] = array($user_first_name,$user_last_name,$user_login,$user_groups,$quiz_name_list,$duration_list,$date_list,$result_list, $revised, $more_details_list);
} else {
$list_info[] = array($quiz_name_list,$duration_list,$date_list,$result_list,$more_details_list);
}

@ -63,11 +63,16 @@ $TBL_LP_ITEM = Database :: get_course_table(TABLE_LP_ITEM);
$course_id = api_get_course_int_id();
if (empty ($exerciseId)) {
$exerciseId = intval($_REQUEST['exerciseId']);
}
//
// filter display by student group
// if $_GET['filterByGroup'] = -1 => do not filter
// else, filter by group_id (0 for no group)
//
//
$filterByGroup = -1;
if (isset($_GET['filterByGroup']) && is_numeric($_GET['filterByGroup'])) {
$filterByGroup = Security::remove_XSS($_GET['filterByGroup']);
@ -167,8 +172,8 @@ if ($_REQUEST['comments'] == 'update' && ($is_allowedToEdit || $is_tutor) && $_G
} else {
$my_comments = '';
}
$my_questionid=$array_content_id_exe[$i];
$sql = "SELECT question from $TBL_QUESTIONS WHERE id = '$my_questionid'";
$my_questionid = intval($array_content_id_exe[$i]);
$sql = "SELECT question from $TBL_QUESTIONS WHERE c_id = $course_id AND id = '$my_questionid'";
$result =Database::query($sql);
$ques_name = Database::result($result,0,"question");
@ -176,7 +181,8 @@ if ($_REQUEST['comments'] == 'update' && ($is_allowedToEdit || $is_tutor) && $_G
Database::query($query);
//Saving results in the track recording table
$recording_changes = 'INSERT INTO '.$TBL_TRACK_ATTEMPT_RECORDING.' (exe_id, question_id, marks, insert_date, author, teacher_comment) VALUES ('."'$id','".$my_questionid."','$my_marks','".api_get_utc_datetime()."','".api_get_user_id()."'".',"'.$my_comments.'")';
$recording_changes = 'INSERT INTO '.$TBL_TRACK_ATTEMPT_RECORDING.' (exe_id, question_id, marks, insert_date, author, teacher_comment)
VALUES ('."'$id','".$my_questionid."','$my_marks','".api_get_utc_datetime()."','".api_get_user_id()."'".',"'.$my_comments.'")';
Database::query($recording_changes);
}
@ -250,6 +256,20 @@ if ($is_allowedToEdit && $origin != 'learnpath') {
}
//Deleting an attempt
if ($_GET['delete'] == 'delete' && ($is_allowedToEdit || api_is_coach()) && !empty ($_GET['did']) && $_GET['did'] == strval(intval($_GET['did']))) {
$sql = 'DELETE FROM ' . $TBL_TRACK_EXERCICES . ' WHERE exe_id = ' . intval($_GET['did']); //_GET[did] filtered by entry condition
Database::query($sql);
$sql = 'DELETE FROM ' . $TBL_TRACK_ATTEMPT . ' WHERE exe_id = ' . intval($_GET['did']); //_GET[did] filtered by entry condition
Database::query($sql);
$filter=Security::remove_XSS($_GET['filter']);
header('Location: exercise_report.php?cidReq=' . Security::remove_XSS($_GET['cidReq']) . '&filter=' . $filter . '&exerciseId='.$exerciseId.'&filter_by_user='.$_GET['filter_by_user']);
exit;
}
if (api_is_allowed_to_edit(null,true)) {
if (!$_GET['filter']) {
$filter_by_not_revised = true;
@ -316,9 +336,10 @@ if ($is_allowedToEdit || $is_tutor) {
$table->set_header(3, get_lang('Group'),false);
$table->set_header(4, get_lang('Exercice'),false);
$table->set_header(5, get_lang('Duration'),false);
$table->set_header(6, get_lang('Date'));
$table->set_header(6, get_lang('Date'));
$table->set_header(7, get_lang('Score'),false);
$table->set_header(8, get_lang('CorrectTest'), false);
$table->set_header(8, get_lang('Status'), false);
$table->set_header(9, get_lang('CorrectTest'), false);
} else {
$table->set_header(0, get_lang('Exercice'));
@ -329,9 +350,6 @@ if ($is_allowedToEdit || $is_tutor) {
}
$content = $table->return_table();
if (empty ($exerciseId)) {
$exerciseId = intval($_REQUEST['exerciseId']);
}
if ($is_allowedToEdit || $is_tutor) {
$nameTools = get_lang('StudentScore');

@ -794,6 +794,9 @@ function delete_student_lp_events($user_id, $lp_id, $course, $session_id) {
$lp_view_table = Database::get_course_table(TABLE_LP_VIEW);
$lp_item_view_table = Database::get_course_table(TABLE_LP_ITEM_VIEW);
$course_id = $course['real_id'];
if (empty($course_id)) {
$course_id = api_get_course_int_id();
}
$track_e_exercises = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$track_attempts = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
@ -1122,24 +1125,26 @@ function get_best_exercise_results_by_user($exercise_id, $course_code, $session_
return $best_score_return;
}
function count_exercise_result($exercise_id, $course_code, $session_id = 0) {
function count_exercise_result_not_validated($exercise_id, $course_code, $session_id = 0) {
$table_track_exercises = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$course_code = Database::escape_string($course_code);
$table_track_attempt = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING);
$course_code = Database::escape_string($course_code);
$session_id = intval($session_id);
$exercise_id = intval($exercise_id);
$select = '*';
$sql = "SELECT count(*) as count FROM $table_track_exercises
WHERE status = '' AND
exe_exo_id = $exercise_id AND
$status = Database::escape_string($status);
$sql = "SELECT count(e.exe_id) as count FROM $table_track_exercises e LEFT JOIN $table_track_attempt a ON e.exe_id = a.exe_id
WHERE exe_exo_id = $exercise_id AND
exe_cours_id = '$course_code' AND
session_id = $session_id AND
e.session_id = $session_id AND
orig_lp_id = 0 AND
orig_lp_item_id = 0 ORDER BY exe_id";
$res = Database::query($sql);
marks IS NULL AND
status = '' AND
orig_lp_item_id = 0 ORDER BY e.exe_id";
$res = Database::query($sql);
$row = Database::fetch_array($res,'ASSOC');
$row = Database::fetch_array($res,'ASSOC');
return $row['count'];
}

Loading…
Cancel
Save