Quiz: Fix "fill in blanks" whith multiple answer enabled #3195

pull/3261/head
Angel Fernando Quiroz Campos 6 years ago
parent 6540601b6f
commit 9936f21167
  1. 46
      main/exercise/exercise.class.php

@ -4122,47 +4122,55 @@ class Exercise
$studentAnswer = trim($listStudentAnswerTemp[$i]);
$studentAnswerToShow = $studentAnswer;
if (empty($studentAnswer)) {
continue;
}
if ($debug) {
error_log("Student answer: $i");
error_log($studentAnswer);
}
if (!$from_database) {
$studentAnswer = FillBlanks::clearStudentAnswer($studentAnswer);
if ($debug) {
error_log("Student answer cleaned:");
error_log($studentAnswer);
}
}
$found = false;
for ($j = 0; $j < count($listTeacherAnswerTemp); $j++) {
$correctAnswer = $listTeacherAnswerTemp[$j];
$type = FillBlanks::getFillTheBlankAnswerType($correctAnswer);
if ($type == FillBlanks::FILL_THE_BLANK_MENU) {
$listMenu = FillBlanks::getFillTheBlankMenuAnswers($correctAnswer, false);
if (!empty($studentAnswer)) {
foreach ($listMenu as $key => $item) {
if ($key == $correctAnswer) {
$studentAnswerToShow = $item;
break;
}
}
}
}
if (!$found) {
if (FillBlanks::isStudentAnswerGood(
$studentAnswer,
$correctAnswer,
$from_database
)
) {
)) {
$questionScore += $answerWeighting[$i];
$totalScore += $answerWeighting[$i];
$listTeacherAnswerTemp[$j] = '';
$found = true;
}
}
$type = FillBlanks::getFillTheBlankAnswerType($correctAnswer);
if ($type == FillBlanks::FILL_THE_BLANK_MENU) {
$listMenu = FillBlanks::getFillTheBlankMenuAnswers($correctAnswer, false);
if (!empty($studentAnswer)) {
foreach ($listMenu as $key => $item) {
if ($key == $correctAnswer) {
$studentAnswerToShow = $item;
break;
}
}
}
}
}
$listCorrectAnswers['student_answer'][$i] = $studentAnswerToShow;
if (!$found) {
$listCorrectAnswers['student_score'][$i] = 0;
} else {
$listCorrectAnswers['student_score'][$i] = 1;
}
$listCorrectAnswers['student_score'][$i] = $found ? 1 : 0;
}
}
$answer = FillBlanks::getAnswerInStudentAttempt($listCorrectAnswers);

Loading…
Cancel
Save