Exercises: Fix score results for option:

RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK

BT#18025
pull/3725/head
Julio Montoya 6 years ago
parent 67f2abc89a
commit eb352dcfba
  1. 4
      main/exercise/exercise.class.php
  2. 32
      main/exercise/hotspot_answers.as.php
  3. 10
      main/inc/lib/exercise.lib.php
  4. 8
      main/inc/lib/exercise_show_functions.lib.php

@ -4656,7 +4656,7 @@ class Exercise
case MATCHING:
case MATCHING_DRAGGABLE:
if (RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK == $this->results_disabled) {
if (empty($s_user_answer)) {
if (false === $showTotalScoreAndUserChoicesInLastAttempt && empty($s_user_answer)) {
break;
}
}
@ -4714,7 +4714,7 @@ class Exercise
$s_answer_label = '';
}
if (RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK == $this->results_disabled) {
if (empty($s_user_answer)) {
if (false === $showTotalScoreAndUserChoicesInLastAttempt && empty($s_user_answer)) {
break;
}
}

@ -91,10 +91,10 @@ $data['image_width'] = $pictureWidth;
$data['image_height'] = $pictureHeight;
$data['courseCode'] = $_course['path'];
$data['hotspots'] = [];
$resultDisable = $objExercise->selectResultsDisabled();
$showTotalScoreAndUserChoicesInLastAttempt = true;
if (in_array(
$objExercise->selectResultsDisabled(), [
$resultDisable, [
RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT,
RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK,
RESULT_DISABLE_DONT_SHOW_SCORE_ONLY_IF_USER_FINISHES_ATTEMPTS_SHOW_ALWAYS_FEEDBACK,
@ -128,15 +128,14 @@ if (in_array(
$hideExpectedAnswer = false;
if ($objExercise->getFeedbackType() == 0 &&
$objExercise->selectResultsDisabled() == RESULT_DISABLE_SHOW_SCORE_ONLY
$resultDisable == RESULT_DISABLE_SHOW_SCORE_ONLY
) {
$hideExpectedAnswer = true;
}
if (in_array(
$objExercise->selectResultsDisabled(), [
$resultDisable, [
RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT,
RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK,
RESULT_DISABLE_DONT_SHOW_SCORE_ONLY_IF_USER_FINISHES_ATTEMPTS_SHOW_ALWAYS_FEEDBACK,
]
)
@ -144,6 +143,15 @@ if (in_array(
$hideExpectedAnswer = $showTotalScoreAndUserChoicesInLastAttempt ? false : true;
}
if (in_array(
$resultDisable, [
RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK,
]
)
) {
$hideExpectedAnswer = false;
}
$hotSpotWithAnswer = [];
$data['answers'] = [];
$rs = $em
@ -160,7 +168,10 @@ $rs = $em
/** @var TrackEHotspot $row */
foreach ($rs as $row) {
$data['answers'][] = $row->getHotspotCoordinate();
$hotSpotWithAnswer[] = $row->getHotspotAnswerId();
if ($row->getHotspotCorrect()) {
$hotSpotWithAnswer[] = $row->getHotspotAnswerId();
}
}
if (!$hideExpectedAnswer) {
@ -183,12 +194,13 @@ if (!$hideExpectedAnswer) {
}
$result = $qb->getQuery()->getResult();
/** @var CQuizAnswer $hotSpotAnswer */
foreach ($result as $hotSpotAnswer) {
if (RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK == $objExercise->results_disabled) {
if (!in_array($hotSpotAnswer->getIid(), $hotSpotWithAnswer)) {
continue;
if (RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK == $resultDisable) {
if (false === $showTotalScoreAndUserChoicesInLastAttempt) {
if (!in_array($hotSpotAnswer->getIid(), $hotSpotWithAnswer)) {
continue;
}
}
}

@ -4649,6 +4649,16 @@ EOT;
$show_only_score = false;
$showTotalScoreAndUserChoicesInLastAttempt = true;
}
if ($objExercise->results_disabled == RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK) {
$showTotalScore = true;
$show_results = true;
$show_only_score = false;
$showTotalScoreAndUserChoicesInLastAttempt = false;
if ($numberAttempts >= $objExercise->attempts) {
$showTotalScoreAndUserChoicesInLastAttempt = true;
}
}
}
if ($objExercise->results_disabled ==

@ -227,7 +227,7 @@ class ExerciseShowFunctions
if ($showTotalScoreAndUserChoices) {
$hide_expected_answer = false;
}
if (empty($studentChoice)) {
if (false === $showTotalScoreAndUserChoices && empty($studentChoice)) {
return '';
}
break;
@ -370,7 +370,7 @@ class ExerciseShowFunctions
}
break;
case RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK:
if (empty($studentChoiceInt)) {
if (false === $showTotalScoreAndUserChoices && empty($studentChoiceInt)) {
return '';
}
break;
@ -507,7 +507,7 @@ class ExerciseShowFunctions
}
break;
case RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK:
if (empty($studentChoice)) {
if (false === $showTotalScoreAndUserChoices && empty($studentChoice)) {
return '';
}
break;
@ -735,7 +735,7 @@ class ExerciseShowFunctions
}
break;
case RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT_NO_FEEDBACK:
if (empty($studentChoice)) {
if (false === $showTotalScoreAndUserChoices && empty($studentChoice)) {
return '';
}
break;

Loading…
Cancel
Save