Clean test's results for LP test too, add global clean button -ref #6950

1.9.x
Hubert Borderiou 11 years ago
parent 9daf0d3b8a
commit 79b08cee7d
  1. 33
      main/exercice/exercice.php
  2. 22
      main/exercice/exercise.class.php

@ -202,6 +202,31 @@ HotPotGCt($documentPath, 1, api_get_user_id());
if ($is_allowedToEdit) {
if (!empty($choice)) {
// All test choice, clean all test's results
if ($choice == 'clean_all_test') {
$check = Security::check_token('get');
if ($check) {
// list des exercices dans un test
// we got variable $course_id $course_info session api_get_session_id()
$tab_exercise_list = get_all_exercises_for_course_id($course_info, api_get_session_id(), $course_id, false);
$quantity_results_deleted = 0;
foreach ($tab_exercise_list as $exeItem) {
// delete result for test, if not in a gradebook
$exercise_action_locked = api_resource_is_locked_by_gradebook($exeItem['id'], LINK_EXERCISE);
if ($exercise_action_locked == false) {
$objExerciseTmp = new Exercise();
if ($objExerciseTmp->read($exeItem['id'])) {
$quantity_results_deleted += $objExerciseTmp->clean_results(true);
}
}
}
Display :: display_confirmation_message(sprintf(get_lang('XResultsCleaned'), $quantity_results_deleted));
}
}
// single exercise choice
// construction of Exercise
$objExerciseTmp = new Exercise();
@ -247,7 +272,7 @@ if ($is_allowedToEdit) {
break;
case 'clean_results' : //clean student results
if ($exercise_action_locked == false) {
$quantity_results_deleted = $objExerciseTmp->clean_results();
$quantity_results_deleted = $objExerciseTmp->clean_results(true);
Display :: display_confirmation_message(sprintf(get_lang('XResultsCleaned'), $quantity_results_deleted));
}
break;
@ -365,6 +390,8 @@ if ($is_allowedToEdit) {
}
$total = $total_exercises + $hp_count;
$token = Security::get_token();
if ($is_allowedToEdit && $origin != 'learnpath') {
echo '<a href="exercise_admin.php?'.api_get_cidreq().'">'.Display :: return_icon('new_exercice.png', get_lang('NewEx'), '', ICON_SIZE_MEDIUM).'</a>';
echo '<a href="question_create.php?'.api_get_cidreq().'">'.Display :: return_icon('new_question.png', get_lang('AddQ'), '', ICON_SIZE_MEDIUM).'</a>';
@ -383,6 +410,7 @@ if ($is_allowedToEdit && $origin != 'learnpath') {
echo '<a href="qti2.php?'.api_get_cidreq().'">'.Display :: return_icon('import_qti2.png', get_lang('ImportQtiQuiz'), '', ICON_SIZE_MEDIUM).'</a>';
echo '<a href="aiken.php?'.api_get_cidreq().'">'.Display :: return_icon('import_aiken.png', get_lang('ImportAikenQuiz'), '', ICON_SIZE_MEDIUM).'</a>';
echo '<a href="upload_exercise.php?'.api_get_cidreq().'">'.Display :: return_icon('import_excel.png', get_lang('ImportExcelQuiz'), '', ICON_SIZE_MEDIUM).'</a>';
echo Display::url(Display::return_icon('clean_all.png', get_lang('CleanAllStudentsResultsForAllTests'), '', ICON_SIZE_MEDIUM), '', array('onclick' => "javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('AreYouSureToEmptyAllTestResults'), ENT_QUOTES, $charset))." ".addslashes($row['title'])."?"."')) return false;", 'href' => 'exercice.php?'.api_get_cidreq().'&choice=clean_all_test&sec_token='.$token));
}
if ($is_allowedToEdit) {
@ -442,7 +470,8 @@ if (!empty($exercise_list)) {
$mylpid = (empty($learnpath_id) ? '' : '&learnpath_id='.$learnpath_id);
$mylpitemid = (empty($learnpath_item_id) ? '' : '&learnpath_item_id='.$learnpath_item_id);
$token = Security::get_token();
// $token = Security::get_token(); // has been moved above
$i = 1;
if ($is_allowedToEdit) {

@ -1486,16 +1486,23 @@ class Exercise {
* Works with exercises in sessions
* @return int quantity of user's exercises deleted
*/
function clean_results() {
function clean_results($clean_lp_tests = false) {
$table_track_e_exercises = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$table_track_e_attempt = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
$sql_where = ' AND
orig_lp_id = 0 AND
orig_lp_item_id = 0';
if ($clean_lp_tests) {
$sql_where = "";
}
$sql_select = "SELECT exe_id FROM $table_track_e_exercises
WHERE exe_cours_id = '".api_get_course_id()."' AND
exe_exo_id = ".$this->id." AND
orig_lp_id = 0 AND
orig_lp_item_id = 0 AND
session_id = ".api_get_session_id()."";
session_id = ".api_get_session_id()." ".
$sql_where;
$result = Database::query($sql_select);
$exe_list = Database::store_result($result);
@ -1512,8 +1519,13 @@ class Exercise {
//delete TRACK_E_EXERCICES table
$sql = "DELETE FROM $table_track_e_exercises
WHERE exe_cours_id = '".api_get_course_id()."' AND exe_exo_id = ".$this->id." AND orig_lp_id = 0 AND orig_lp_item_id = 0 AND session_id = ".api_get_session_id()."";
WHERE exe_cours_id = '".api_get_course_id()."'
AND exe_exo_id = ".$this->id."
$sql_where
AND session_id = ".api_get_session_id()."";
Database::query($sql);
return $i;
}

Loading…
Cancel
Save