diff --git a/mod/quiz/classes/form/randomquestion_form.php b/mod/quiz/classes/form/randomquestion_form.php index ef138166a47..140f71810f4 100644 --- a/mod/quiz/classes/form/randomquestion_form.php +++ b/mod/quiz/classes/form/randomquestion_form.php @@ -81,4 +81,20 @@ class randomquestion_form extends \moodleform { $mform->addGroup($buttonarray, 'buttonar', '', array(' '), false); $mform->closeHeaderBefore('buttonar'); } + + public function set_data($defaultvalues) { + $mform = $this->_form; + + if ($defaultvalues->fromtags) { + $fromtagselement = $mform->getElement('fromtags'); + foreach ($defaultvalues->fromtags as $fromtag) { + if (!$fromtagselement->optionExists($fromtag)) { + $optionname = get_string('randomfromunavailabletag', 'mod_quiz', explode(',', $fromtag)[1]); + $fromtagselement->addOption($optionname, $fromtag); + } + } + } + + parent::set_data($defaultvalues); + } } diff --git a/mod/quiz/lang/en/quiz.php b/mod/quiz/lang/en/quiz.php index 9171ba1a672..6f88c803e08 100644 --- a/mod/quiz/lang/en/quiz.php +++ b/mod/quiz/lang/en/quiz.php @@ -700,6 +700,7 @@ $string['randomcreate'] = 'Create random questions'; $string['randomediting'] = 'Editing a random question'; $string['randomfromcategory'] = 'Random question from category:'; $string['randomfromexistingcategory'] = 'Random question from an existing category'; +$string['randomfromunavailabletag'] = '{$a} (unavailable)'; $string['randomnumber'] = 'Number of random questions'; $string['randomnosubcat'] = 'Questions from this category only, not its subcategories.'; $string['randomquestion'] = 'Random question';