Revert "Fix CALCULATED_ANSWER see #8237"

This reverts commit 8104fe7279.
1.10.x
Angel Fernando Quiroz Campos 10 years ago
parent d3a5c1e8db
commit a82e76b766
  1. 1
      main/exercice/answer.class.php
  2. 26
      main/exercice/exercise.class.php
  3. 5
      main/exercice/exercise_result.php
  4. 34
      main/exercice/exercise_show.php
  5. 3
      main/inc/ajax/exercise.ajax.php
  6. 14
      main/inc/lib/exercise.lib.php

@ -72,6 +72,7 @@ class Answer
$objExercise = new Exercise($this->course_id);
$exerciseId = isset($_REQUEST['exerciseId']) ? $_REQUEST['exerciseId'] : null;
$objExercise->read($exerciseId);
if ($objExercise->random_answers == '1') {
$this->readOrderedBy('rand()', '');// randomize answers
} else {

@ -1,8 +1,6 @@
<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/**
* Class Exercise
*
@ -164,7 +162,9 @@ class Exercise
$this->display_category_name = $object->display_category_name;
$this->pass_percentage = $object->pass_percentage;
$this->sessionId = $object->session_id;
$this->is_gradebook_locked = api_resource_is_locked_by_gradebook($id, LINK_EXERCISE);
$this->review_answers = (isset($object->review_answers) && $object->review_answers == 1) ? true : false;
$this->globalCategoryId = isset($object->global_category_id) ? $object->global_category_id : null;
$this->questionSelectionType = isset($object->question_selection_type) ? $object->question_selection_type : null;
@ -3746,16 +3746,7 @@ class Exercise
}
break;
case CALCULATED_ANSWER:
$calculatedAnswerId = Session::read('calculatedAnswerId');
$answer = '';
if ($calculatedAnswerId) {
$calculatedAnswerInfo = Session::read('calculatedAnswerInfo');
if (isset($calculatedAnswerInfo[$questionId])) {
$answer = $calculatedAnswerInfo[$questionId];
} else {
$answer = $objAnswerTmp->selectAnswer($calculatedAnswerId[$questionId]);
}
}
$answer = $objAnswerTmp->selectAnswer($_SESSION['calculatedAnswerId'][$questionId]);
$preArray = explode('@@', $answer);
$last = count($preArray) - 1;
$answer = '';
@ -3821,16 +3812,6 @@ class Exercise
}
$answer = '';
$realCorrectTags = $correctTags;
if ($from_database && empty($calculatedAnswerId)) {
$queryfill = "SELECT answer FROM ".$TBL_TRACK_ATTEMPT."
WHERE
exe_id = '".$exeId."' AND
question_id= ".intval($questionId)."";
$resfill = Database::query($queryfill);
$answer = Database::result($resfill, 0, 'answer');
}
for ($i = 0; $i < count($realCorrectTags); $i++) {
if ($i == 0) {
$answer .= $realText[0];
@ -4603,7 +4584,6 @@ class Exercise
$answer,
$studentChoice,
$answerComment,
$results_disabled
$results_disabled,
$answerId
);

@ -165,6 +165,7 @@ ExerciseLib::exercise_time_control_delete(
$learnpath_id,
$learnpath_item_id
);
ExerciseLib::delete_chat_exercise_session($exe_id);
if ($origin != 'learnpath') {
@ -179,8 +180,6 @@ if ($origin != 'learnpath') {
if (api_is_allowed_to_session_edit()) {
Session::erase('objExercise');
Session::erase('exe_id');
Session::erase('calculatedAnswerId');
Session::erase('calculatedAnswerInfo');
}
Display::display_footer();
} else {
@ -191,8 +190,6 @@ if ($origin != 'learnpath') {
if (api_is_allowed_to_session_edit()) {
Session::erase('objExercise');
Session::erase('exe_id');
Session::erase('calculatedAnswerId');
Session::erase('calculatedAnswerInfo');
}
// Record the results in the learning path, using the SCORM interface (API)

@ -1,8 +1,6 @@
<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/**
* Shows the exercise results
*
@ -14,6 +12,8 @@ use ChamiloSession as Session;
*
*/
use ChamiloSession as Session;
require_once '../inc/global.inc.php';
$debug = false;
if (empty($origin) ) {
@ -322,6 +322,7 @@ foreach ($questionList as $questionId) {
$counter = 1;
$exercise_content = null;
$category_list = array();
$useAdvancedEditor = true;
if (!empty($maxEditors) && count($questionList) > $maxEditors) {
@ -410,22 +411,6 @@ foreach ($questionList as $questionId) {
);
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == CALCULATED_ANSWER) {
$question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg(),
[],
$showTotalScoreAndUserChoices
);
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == GLOBAL_MULTIPLE_ANSWER) {
$question_result = $objExercise->manage_answer(
$id,
@ -665,8 +650,7 @@ foreach ($questionList as $questionId) {
}
//showing the score
$queryfree = "SELECT marks FROM ".$TBL_TRACK_ATTEMPT."
WHERE exe_id = ".intval($id)." and question_id= ".intval($questionId)."";
$queryfree = "select marks from ".$TBL_TRACK_ATTEMPT." WHERE exe_id = ".intval($id)." and question_id= ".intval($questionId)."";
$resfree = Database::query($queryfree);
$questionScore= Database::result($resfree,0,"marks");
$totalScore+=$questionScore;
@ -731,13 +715,7 @@ foreach ($questionList as $questionId) {
}
}
echo '<br />';
echo Display::url(
$url_name,
'javascript://',
array(
'class' => 'btn btn-default',
'onclick' => "showfck('".$name."', '".$marksname."');")
);
echo Display::url($url_name, 'javascript://', array('class' => 'btn', 'onclick'=>"showfck('".$name."', '".$marksname."');"));
echo '<br />';
echo '<div id="feedback_'.$name.'" style="width:100%">';
@ -877,7 +855,9 @@ foreach ($questionList as $questionId) {
$i++;
$contents = ob_get_clean();
$question_content = '<div class="question_row">';
if ($show_results) {
//Shows question title an description
$question_content .= $objQuestionTmp->return_header(null, $counter, $score);

@ -351,7 +351,8 @@ switch ($action) {
continue;
}
$my_choice = isset($choice[$my_question_id]) ? $choice[$my_question_id] : null;
$my_choice = isset($choice[$my_question_id]) ?
$choice[$my_question_id] : null;
if ($debug) {
error_log("my_choice = ".print_r($my_choice, 1)."");

@ -622,6 +622,7 @@ class ExerciseLib
* the text to find mustn't contains HTML tags
* the text to find mustn't contains char "
*/
if ($origin !== null) {
global $exe_id;
$trackAttempts = Database::get_main_table(
TABLE_STATISTIC_TRACK_E_ATTEMPT
@ -631,11 +632,7 @@ class ExerciseLib
$rsLastAttempt = Database::query($sql);
$rowLastAttempt = Database::fetch_array($rsLastAttempt);
$answer = $rowLastAttempt['answer'];
$calculatedAnswerId = Session::read('calculatedAnswerId');
$calculatedAnswerInfo = Session::read('calculatedAnswerInfo');
if (empty($answer)) {
if (empty($calculatedAnswerId)) {
$_SESSION['calculatedAnswerId'][$questionId] = mt_rand(
1,
$nbrAnswers
@ -643,14 +640,6 @@ class ExerciseLib
$answer = $objAnswerTmp->selectAnswer(
$_SESSION['calculatedAnswerId'][$questionId]
);
Session::write('calculatedAnswerInfo', [$questionId => $answer]);
} else {
$calculatedAnswerInfo = Session::read('calculatedAnswerInfo');
if (isset($calculatedAnswerInfo[$questionId])) {
$answer = $calculatedAnswerInfo[$questionId];
}
}
}
@ -662,7 +651,6 @@ class ExerciseLib
$correctAnswerList
);
// get student answer to display it if student go back to previous calculated answer question in a test
if (isset($user_choice[0]['answer'])) {
api_preg_match_all(

Loading…
Cancel
Save