From 1bad9be67afffef28361c0b3e557feaadd8e66bf Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 14 May 2015 10:21:16 +0100 Subject: [PATCH] MDL-50228 quiz: improve overall feedback section of the form --- mod/quiz/lang/en/quiz.php | 2 ++ mod/quiz/mod_form.php | 4 +++- mod/quiz/settings.php | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mod/quiz/lang/en/quiz.php b/mod/quiz/lang/en/quiz.php index df0c5ef6b3e..1e80f08a681 100644 --- a/mod/quiz/lang/en/quiz.php +++ b/mod/quiz/lang/en/quiz.php @@ -431,6 +431,8 @@ $string['incorrect'] = 'Incorrect'; $string['indivresp'] = 'Responses of individuals to each item'; $string['info'] = 'Info'; $string['infoshort'] = 'i'; +$string['initialnumfeedbacks'] = 'Initial number of overall feedback fields'; +$string['initialnumfeedbacks_desc'] = 'When creating a new quiz, provide this many blank overall feedback boxes. Once the quiz has been created, the form shows the number of fields required for the number of feedbacks in the quiz. The setting must be at least 1.'; $string['inprogress'] = 'In progress'; $string['introduction'] = 'Description'; $string['invalidattemptid'] = 'No such attempt ID exists'; diff --git a/mod/quiz/mod_form.php b/mod/quiz/mod_form.php index 40581cc7946..a768e975149 100644 --- a/mod/quiz/mod_form.php +++ b/mod/quiz/mod_form.php @@ -358,10 +358,12 @@ class mod_quiz_mod_form extends moodleform_mod { if (!empty($this->_instance)) { $this->_feedbacks = $DB->get_records('quiz_feedback', array('quizid' => $this->_instance), 'mingrade DESC'); + $numfeedbacks = count($this->_feedbacks); } else { $this->_feedbacks = array(); + $numfeedbacks = $quizconfig->initialnumfeedbacks; } - $numfeedbacks = max(count($this->_feedbacks) * 1.5, 5); + $numfeedbacks = max($numfeedbacks, 1); $nextel = $this->repeat_elements($repeatarray, $numfeedbacks - 1, $repeatedoptions, 'boundary_repeats', 'boundary_add_fields', 3, diff --git a/mod/quiz/settings.php b/mod/quiz/settings.php index d84652a882e..5c151c6b610 100644 --- a/mod/quiz/settings.php +++ b/mod/quiz/settings.php @@ -203,6 +203,10 @@ if ($ADMIN->fulltree) { get_string('showinsecurepopup', 'quiz'), get_string('configpopup', 'quiz'), array('value' => '-', 'adv' => true), null)); + $quizsettings->add(new admin_setting_configtext('quiz/initialnumfeedbacks', + get_string('initialnumfeedbacks', 'quiz'), get_string('initialnumfeedbacks_desc', 'quiz'), + 2, PARAM_INT, 5)); + // Allow user to specify if setting outcomes is an advanced setting. if (!empty($CFG->enableoutcomes)) { $quizsettings->add(new admin_setting_configcheckbox('quiz/outcomes_adv',