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',