Merge pull request #4526 from christianbeeznest/Majorel-20366-4

Exercise: Fix display question attempt in modal - refs BT#20366
pull/4529/head
Yannick Warnier 3 years ago committed by GitHub
commit df65229c61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 60
      main/inc/ajax/exercise.ajax.php
  2. 4
      main/inc/lib/exercise.lib.php

@ -937,6 +937,66 @@ switch ($action) {
} }
echo json_encode(['ok' => true, 'savedAnswerMessage' => $savedQuestionsMessage]); echo json_encode(['ok' => true, 'savedAnswerMessage' => $savedQuestionsMessage]);
break; break;
case 'show_question_attempt':
$isAllowedToEdit = api_is_allowed_to_edit(null, true, false, false);
if (!$isAllowedToEdit) {
api_not_allowed(true);
exit;
}
$questionId = isset($_GET['question']) ? (int) $_GET['question'] : 0;
$exerciseId = isset($_REQUEST['exercise']) ? (int) $_REQUEST['exercise'] : 0;
if (!$questionId || !$exerciseId) {
break;
}
$objExercise = new Exercise();
$objExercise->read($exerciseId);
$objQuestion = Question::read($questionId);
$id = '';
if (api_get_configuration_value('show_question_id')) {
$id = '<h4>#'.$objQuestion->course['code'].'-'.$objQuestion->iid.'</h4>';
}
echo $id;
echo '<p class="lead">'.$objQuestion->get_question_type_name().'</p>';
if (in_array($objQuestion->type, [FILL_IN_BLANKS, FILL_IN_BLANKS_GLOBAL])) {
echo '<script>
$(function() {
$(".selectpicker").selectpicker({});
});
</script>';
}
// Allows render MathJax elements in a ajax call
if (api_get_setting('include_asciimathml_script') === 'true') {
echo '<script> MathJax.Hub.Queue(["Typeset",MathJax.Hub]);</script>';
}
if (in_array($objQuestion->type, [HOT_SPOT, HOT_SPOT_GLOBAL])) {
echo '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'hotspot/js/hotspot.js"></script>';
}
$attemptList = [];
if (!empty($exeId)) {
$attemptList = Event::getAllExerciseEventByExeId($exeId);
}
$userChoice = isset($attemptList[$questionId]) ? $attemptList[$questionId] : null;
ExerciseLib::showQuestion(
$objExercise,
$questionId,
false,
null,
null,
false,
true,
$userChoice,
true
);
break;
case 'show_question': case 'show_question':
$isAllowedToEdit = api_is_allowed_to_edit(null, true, false, false); $isAllowedToEdit = api_is_allowed_to_edit(null, true, false, false);

@ -1936,7 +1936,7 @@ HOTSPOT;
$exerciseId = $objExercise->iid; $exerciseId = $objExercise->iid;
$courseId = $objExercise->course_id; $courseId = $objExercise->course_id;
$sessionId = $objExercise->sessionId; $sessionId = (int) $objExercise->sessionId;
$questionList = $objExercise->getQuestionForTeacher(0, $objExercise->getQuestionCount()); $questionList = $objExercise->getQuestionForTeacher(0, $objExercise->getQuestionCount());
$headers = [ $headers = [
@ -2013,7 +2013,7 @@ HOTSPOT;
false, false,
$objExercise->selectPropagateNeg() $objExercise->selectPropagateNeg()
); );
$questionModalUrl = api_get_path(WEB_AJAX_PATH).'exercise.ajax.php?'.api_get_cidreq().'&a=show_question&exercise='.$exerciseId.'&question='.$questionId; $questionModalUrl = api_get_path(WEB_AJAX_PATH).'exercise.ajax.php?'.api_get_cidreq().'&a=show_question_attempt&exercise='.$exerciseId.'&question='.$questionId.'&exe_id='.$row['exe_id'];
$data[$x][$questionId] = '<a href="'.$questionModalUrl.'" class="ajax" data-title="'.$questionName.'" title="'.get_lang('ClicToSeeDetails').'">'.$questionResult['score'].'</a>'; $data[$x][$questionId] = '<a href="'.$questionModalUrl.'" class="ajax" data-title="'.$questionName.'" title="'.get_lang('ClicToSeeDetails').'">'.$questionResult['score'].'</a>';
} }
} }

Loading…
Cancel
Save