]> _ Git - fluidbook-toolbox.git/commitdiff
wait #4224 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 27 Jan 2021 15:59:32 +0000 (16:59 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 27 Jan 2021 15:59:32 +0000 (16:59 +0100)
app/Models/Quiz.php
app/SubForms/Question.php
resources/quiz/js/main.js

index 53500f6b2c517aa3d093617ca5a96ff70562870a..eccd2af8f8a77cb6eeb87da49d9e7ad2e60bb0a9 100644 (file)
@@ -292,6 +292,9 @@ class Quiz extends CubistMagicAbstractModel
             if (!isset($question['type'])) {
                 $question['type'] = 'multiple';
             }
+            if (!isset($question['required'])) {
+                $question['required'] = true;
+            }
             if (!isset($question['count_for_score'])) {
                 $question['count_for_score'] = true;
             }
@@ -299,6 +302,7 @@ class Quiz extends CubistMagicAbstractModel
             if ($question['multiple']) {
                 $xq->addAttribute('multiple', '1');
             }
+            $xq->addAttribute('required', $question['required'] ? '1' : '0');
             $xq->addAttribute('count', $question['count_for_score'] ? '1' : '0');
             $xq->addAttribute('type', $question['type']);
             $xq->addAttribute('min_score', $question['min_score']);
index ce7d452b2363040c3edb38697c2a76d0a3444c0e..11d58d97f8a334dc5dbe9d4cf38e24ddca85929a 100644 (file)
@@ -16,6 +16,11 @@ class Question extends SubForm
             'label' => __('Intitulé de la question'),
         ]);
 
+        $this->addField(['name' => 'required',
+            'type' => 'Checkbox',
+            'default' => true,
+            'label' => __('Réponse obligatoire')]);
+
         $this->addField(['name' => 'report_label',
             'type' => 'Text',
             'label' => __('Intitulé de la question dans les rapports'),
index 6225578c8b83b0277149c20ce8db56b24441daa8..bda41f69c86a9faa547ac82a0c09279421704254 100644 (file)
                 $(correction).append(c);
 
                 var q = $(question);
+                var required = $(q).attr('required') === '1' ? 'required' : '';
 
                 // Append answers
                 var holder = $('<div class="holder"></div>');
                         q.addClass('multiple');
                     }
                 } else if (type === 'text' || type === "email") {
-                    $(holder).append('<input required type="' + type + '" name="answer" class="focusme" placeholder="' + $(this).attr('placeholder') + '" />')
+                    $(holder).append('<input ' + required + ' type="' + type + '" name="answer" class="focusme" placeholder="' + $(this).attr('placeholder') + '" />')
                 } else if (type === 'textarea') {
-                    $(holder).append('<textarea required name="answer" class="focusme" placeholder="' + $(this).attr('placeholder') + '"></textarea>')
+                    $(holder).append('<textarea ' + required + ' name="answer" class="focusme" placeholder="' + $(this).attr('placeholder') + '"></textarea>')
                 }
 
                 $(q).find('.answers').append($(holder));
             results += '<h2 class="defaultMessage">' + defaultMessage + '</h2>';
             results += '<h2 class="passedMessage">' + passedMessage + '</h2>';
             results += '<h2 class="failedMessage">' + failedMessage + '</h2>';
-            if(displayScore) {
+            if (displayScore) {
                 results += '<div class="content">' + getTranslation('totalQuestions') + ' <span id="totalquestions">' + countQuestions + '</span><br />' + getTranslation('correctAnswers') + ' <span id="correctanswers"></span></div>';
             }
             results += '</div>';