From c907987844f4e4207fa8a6bfc2d4d1e27b0b1735 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Mon, 12 Mar 2018 11:22:20 +1100 Subject: [PATCH] MDL-61514 Quiz: Display unavailable tags when editing random questions When editing a random question, the form will display the tags that the random question is configured to get questions from even if those tags do not exist anymore. --- mod/quiz/classes/form/randomquestion_form.php | 16 ++++++++++++++++ mod/quiz/lang/en/quiz.php | 1 + 2 files changed, 17 insertions(+) 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';