Fix multiple answer when showing correct answers on last attempt - refs BT#11024

pull/2487/head
Angel Fernando Quiroz Campos 9 years ago
parent c47d588e49
commit 2ae500a748
  1. 24
      main/exercise/exercise.class.php
  2. 16
      main/exercise/exercise_submit.php
  3. 2
      main/inc/lib/events.lib.php

@ -8457,19 +8457,21 @@ class Exercise
$corrects = [];
foreach ($attempts as $attempt) {
foreach ($attempt['question_list'] as $answer) {
$objAnswer = new Answer($answer['question_id']);
foreach ($attempt['question_list'] as $answers) {
foreach ($answers as $answer) {
$objAnswer = new Answer($answer['question_id']);
switch ($objAnswer->getQuestionType()) {
case FILL_IN_BLANKS:
$isCorrect = FillBlanks::isCorrect($answer['answer']);
break;
default:
$isCorrect = $objAnswer->isCorrectByAutoId($answer['answer']);
}
switch ($objAnswer->getQuestionType()) {
case FILL_IN_BLANKS:
$isCorrect = FillBlanks::isCorrect($answer['answer']);
break;
default:
$isCorrect = $objAnswer->isCorrectByAutoId($answer['answer']);
}
if ($isCorrect) {
$corrects[$answer['question_id']][] = $answer;
if ($isCorrect) {
$corrects[$answer['question_id']][] = $answer;
}
}
}
}

@ -221,13 +221,15 @@ if ($objExercise->selectAttempts() > 0) {
);
if (!empty($last_attempt_info['question_list'])) {
foreach($last_attempt_info['question_list'] as $question_data) {
$question_id = $question_data['question_id'];
$marks = $question_data['marks'];
$question_info = Question::read($question_id);
$attempt_html .= Display::div($question_info->question, array('class'=>'question_title'));
$attempt_html .= Display::div(get_lang('Score').' '.$marks, array('id'=>'question_question_titlescore'));
foreach($last_attempt_info['question_list'] as $questions) {
foreach ($questions as $question_data) {
$question_id = $question_data['question_id'];
$marks = $question_data['marks'];
$question_info = Question::read($question_id);
$attempt_html .= Display::div($question_info->question, array('class'=>'question_title'));
$attempt_html .= Display::div(get_lang('Score').' '.$marks, array('id'=>'question_question_titlescore'));
}
}
}
$score = ExerciseLib::show_score($last_attempt_info['exe_result'], $last_attempt_info['exe_weighting']);

@ -1364,7 +1364,7 @@ class Event
WHERE exe_id = {$row['exe_id']}";
$res_question = Database::query($sql);
while ($row_q = Database::fetch_array($res_question, 'ASSOC')) {
$list[$row['exe_id']]['question_list'][$row_q['question_id']] = $row_q;
$list[$row['exe_id']]['question_list'][$row_q['question_id']][] = $row_q;
}
}
return $list;

Loading…
Cancel
Save