MDL-27747 Missing information and errors on the quiz view page. #720
This commit is contained in:
+18
-10
@@ -352,7 +352,7 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
return '';
|
||||
}
|
||||
return $this->box($this->heading(get_string('accessnoticesheader', 'quiz'), 3) .
|
||||
$this->access_messages($messages), 'quizaccessnotices');
|
||||
$this->access_messages($messages), 'quizaccessnotices');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -538,17 +538,22 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
* @param array $quiz Array conting quiz data
|
||||
* @param int $cm Course Module ID
|
||||
* @param int $context The page context ID
|
||||
* @param array $messages Array contining any maeeages
|
||||
* @param array $infomessages information about this quiz
|
||||
* @param mod_quiz_view_object $viewobj
|
||||
* @param string $buttontext
|
||||
* @param string $buttontext text for the start/continue attempt button, if
|
||||
* it should be shown.
|
||||
* @param array $infomessages further information about why the student cannot
|
||||
* attempt this quiz now, if appicable this quiz
|
||||
*/
|
||||
public function view_page($course, $quiz, $cm, $context, $messages, $viewobj, $buttontext) {
|
||||
public function view_page($course, $quiz, $cm, $context, $infomessages, $viewobj,
|
||||
$buttontext, $preventmessages) {
|
||||
$output = '';
|
||||
$output .= $this->view_information($course, $quiz, $cm, $context, $messages);
|
||||
$output .= $this->view_information($course, $quiz, $cm, $context, $infomessages);
|
||||
$output .= $this->view_table($quiz, $context, $viewobj);
|
||||
$output .= $this->view_best_score($viewobj);
|
||||
$output .= $this->view_result_info($quiz, $context, $cm, $viewobj);
|
||||
$output .= $this->view_attempt_button($course, $quiz, $cm, $context, $viewobj, $buttontext);
|
||||
$output .= $this->view_attempt_button($course, $quiz, $cm, $context, $viewobj,
|
||||
$buttontext, $preventmessages);
|
||||
return $output;
|
||||
}
|
||||
|
||||
@@ -610,9 +615,7 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
'intro');
|
||||
}
|
||||
|
||||
$output .= $this->box_start('quizinfo');
|
||||
$this->access_messages($messages);
|
||||
$output .= $this->box_end();
|
||||
$output .= $this->box($this->access_messages($messages), 'quizinfo');
|
||||
|
||||
// Show number of attempts summary to those who can view reports.
|
||||
if (has_capability('mod/quiz:viewreports', $context)) {
|
||||
@@ -855,7 +858,8 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
* @param mod_quiz_view_object $viewobj
|
||||
* @param string $buttontext
|
||||
*/
|
||||
public function view_attempt_button($course, $quiz, $cm, $context, $viewobj, $buttontext) {
|
||||
public function view_attempt_button($course, $quiz, $cm, $context, $viewobj,
|
||||
$buttontext, $preventmessages) {
|
||||
$output = '';
|
||||
// Determine if we should be showing a start/continue attempt button,
|
||||
// or a button to go back to the course page.
|
||||
@@ -866,6 +870,10 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
$output .= quiz_no_questions_message($quiz, $cm, $context);
|
||||
}
|
||||
|
||||
if ($preventmessages) {
|
||||
$output .= $this->access_messages($preventmessages);
|
||||
}
|
||||
|
||||
if ($buttontext) {
|
||||
$output .= $viewobj->accessmanager->print_start_attempt_button($viewobj->canpreview,
|
||||
$buttontext, $viewobj->unfinished);
|
||||
|
||||
+11
-10
@@ -162,14 +162,15 @@ $viewobj->unfinished = $unfinished;
|
||||
$viewobj->lastfinishedattempt = $lastfinishedattempt;
|
||||
|
||||
// Display information about this quiz.
|
||||
$messages = $viewobj->accessmanager->describe_rules();
|
||||
$infomessages = $viewobj->accessmanager->describe_rules();
|
||||
if ($quiz->attempts != 1) {
|
||||
$messages[] = get_string('gradingmethod', 'quiz',
|
||||
$infomessages[] = get_string('gradingmethod', 'quiz',
|
||||
quiz_get_grading_option_name($quiz->grademethod));
|
||||
}
|
||||
|
||||
// This will be set something if as start/continue attempt button should appear.
|
||||
$buttontext = '';
|
||||
$preventmessages = array();
|
||||
if (!quiz_clean_layout($quiz->questions, true)) {
|
||||
$buttontext = '';
|
||||
|
||||
@@ -183,10 +184,10 @@ if (!quiz_clean_layout($quiz->questions, true)) {
|
||||
|
||||
} else {
|
||||
if ($viewobj->canattempt) {
|
||||
$messages = $viewobj->accessmanager->prevent_new_attempt($viewobj->numattempts,
|
||||
$preventmessages = $viewobj->accessmanager->prevent_new_attempt($viewobj->numattempts,
|
||||
$viewobj->lastfinishedattempt);
|
||||
if ($messages) {
|
||||
$this->access_messages($messages);
|
||||
if ($preventmessages) {
|
||||
$buttontext = '';
|
||||
} else if ($viewobj->numattempts == 0) {
|
||||
$buttontext = get_string('attemptquiznow', 'quiz');
|
||||
} else {
|
||||
@@ -204,8 +205,7 @@ if (!quiz_clean_layout($quiz->questions, true)) {
|
||||
if (!$viewobj->moreattempts) {
|
||||
$buttontext = '';
|
||||
} else if ($viewobj->canattempt
|
||||
&& $messages = $viewobj->accessmanager->prevent_access()) {
|
||||
$this->access_messages($messages);
|
||||
&& $preventmessages = $viewobj->accessmanager->prevent_access()) {
|
||||
$buttontext = '';
|
||||
}
|
||||
}
|
||||
@@ -215,13 +215,14 @@ echo $OUTPUT->header();
|
||||
|
||||
// Guests can't do a quiz, so offer them a choice of logging in or going back.
|
||||
if (isguestuser()) {
|
||||
echo $output->view_page_guest($course, $quiz, $cm, $context, $messages, $viewobj);
|
||||
echo $output->view_page_guest($course, $quiz, $cm, $context, $infomessages, $viewobj);
|
||||
} else if (!isguestuser() && !($viewobj->canattempt || $viewobj->canpreview
|
||||
|| $viewobj->canreviewmine)) {
|
||||
// If they are not enrolled in this course in a good enough role, tell them to enrol.
|
||||
echo $output->view_page_notenrolled($course, $quiz, $cm, $context, $messages, $viewobj);
|
||||
echo $output->view_page_notenrolled($course, $quiz, $cm, $context, $infomessages, $viewobj);
|
||||
} else {
|
||||
echo $output->view_page($course, $quiz, $cm, $context, $messages, $viewobj, $buttontext);
|
||||
echo $output->view_page($course, $quiz, $cm, $context, $infomessages, $viewobj,
|
||||
$buttontext, $preventmessages);
|
||||
}
|
||||
|
||||
echo $OUTPUT->footer();
|
||||
|
||||
Reference in New Issue
Block a user