MDL-29818: Improve error message when a grade has no answer
authorAndrew Robert Nicols <andrew.nicols@luns.net.uk>
Tue, 18 Oct 2011 14:11:36 +0000 (15:11 +0100)
committerAndrew Robert Nicols <andrew.nicols@luns.net.uk>
Wed, 19 Oct 2011 08:34:59 +0000 (09:34 +0100)
question/type/multichoice/edit_multichoice_form.php
question/type/multichoice/lang/en/qtype_multichoice.php

index e2367e6..e94c202 100644 (file)
@@ -109,9 +109,13 @@ class qtype_multichoice_edit_form extends question_edit_form {
         foreach ($answers as $key => $answer) {
             //check no of choices
             $trimmedanswer = trim($answer['text']);
         foreach ($answers as $key => $answer) {
             //check no of choices
             $trimmedanswer = trim($answer['text']);
-            if (empty($trimmedanswer)) {
+            $fraction = (float) $data['fraction'][$key];
+            if (empty($trimmedanswer) && empty($fraction)) {
                 continue;
             }
                 continue;
             }
+            if (empty($trimmedanswer)) {
+                $errors['fraction['.$key.']'] = get_string('errgradesetanswerblank', 'qtype_multichoice');
+            }
 
             $answercount++;
 
 
             $answercount++;
 
index 091b62e..ae44717 100644 (file)
@@ -41,6 +41,7 @@ $string['clozeaid'] = 'Enter missing word';
 $string['correctansweris'] = 'The correct answer is: {$a}.';
 $string['correctfeedback'] = 'For any correct response';
 $string['editingmultichoice'] = 'Editing a Multiple choice question';
 $string['correctansweris'] = 'The correct answer is: {$a}.';
 $string['correctfeedback'] = 'For any correct response';
 $string['editingmultichoice'] = 'Editing a Multiple choice question';
+$string['errgradesetanswerblank'] = 'Grade set, but the Answer is blank';
 $string['errfractionsaddwrong'] = 'The positive grades you have chosen do not add up to 100%<br />Instead, they add up to {$a}%';
 $string['errfractionsnomax'] = 'One of the choices should be 100%, so that it is<br />possible to get a full grade for this question.';
 $string['feedback'] = 'Feedback';
 $string['errfractionsaddwrong'] = 'The positive grades you have chosen do not add up to 100%<br />Instead, they add up to {$a}%';
 $string['errfractionsnomax'] = 'One of the choices should be 100%, so that it is<br />possible to get a full grade for this question.';
 $string['feedback'] = 'Feedback';