]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-17264 Adding control of usecase for the shortanswer type using SHORTANSER_C or
authorpichetp <pichetp>
Mon, 24 Nov 2008 04:10:43 +0000 (04:10 +0000)
committerpichetp <pichetp>
Mon, 24 Nov 2008 04:10:43 +0000 (04:10 +0000)
 SAC or MWC

question/type/multianswer/edit_multianswer_form.php
question/type/multianswer/questiontype.php

index 6af136e4ea36d3fccf1d030d4760ef1f07dcb4e2..d698dd7c62645192d9160b8cdb0f4306f8a59ef2 100644 (file)
@@ -66,6 +66,10 @@ class question_edit_multianswer_form extends question_edit_form {
             $mform->addElement('static', 'sub_'.$sub."_".'defaultgrade', get_string('defaultgrade', 'quiz'));
             $mform->setDefault('sub_'.$sub."_".'defaultgrade',$this->questiondisplay->options->questions[$sub]->defaultgrade);
 
+                if ($this->questiondisplay->options->questions[$sub]->qtype =='shortanswer'   ) {
+                    $mform->addElement('static', 'sub_'.$sub."_".'usecase', get_string('casesensitive', 'quiz'));
+                }
+
                 if ($this->questiondisplay->options->questions[$sub]->qtype =='multichoice'   ) {
                     $mform->addElement('static', 'sub_'.$sub."_".'layout', get_string('layout', 'qtype_multianswer'),array('cols'=>60, 'rows'=>1)) ;//, $gradeoptions);
                 }
@@ -151,6 +155,17 @@ class question_edit_multianswer_form extends question_edit_form {
                     $answercount = 0;
                     $maxgrade = false;
                     $maxfraction = -1;
+                    if ($subquestion->qtype =='shortanswer'   ) {
+                        switch ($subquestion->usecase) {
+                            case '1':
+                                $default_values[$prefix.'usecase']= get_string('caseyes', 'quiz');
+                                break;                                   
+                            case '0':
+                            default :
+                                $default_values[$prefix.'usecase']= get_string('caseno', 'quiz');                               
+                        }
+                    }
+
                     if ($subquestion->qtype == 'multichoice' ) {
                         $default_values[$prefix.'layout']  = $subquestion->layout ;
                         switch ($subquestion->layout) {
index e8efa05464ed61e1df2b93aba3a7c367a6df0c9c..0842b5261df0a437af2bc26b0403b5e2faa84d20 100644 (file)
@@ -953,7 +953,7 @@ define("NUMERICAL_ABS_ERROR_MARGIN", 6);
 
 // Remaining ANSWER regexes
 define("ANSWER_TYPE_DEF_REGEX",
-       '(NUMERICAL|NM)|(MULTICHOICE|MC)|(MULTICHOICE_V|MCV)|(MULTICHOICE_H|MCH)|(SHORTANSWER|SA|MW)');
+       '(NUMERICAL|NM)|(MULTICHOICE|MC)|(MULTICHOICE_V|MCV)|(MULTICHOICE_H|MCH)|(SHORTANSWER|SA|MW)|(SHORTANSWER_C|SAC|MWC)');
 define("ANSWER_START_REGEX",
        '\{([0-9]*):(' . ANSWER_TYPE_DEF_REGEX . '):');
 
@@ -971,7 +971,8 @@ define("ANSWER_REGEX_ANSWER_TYPE_MULTICHOICE", 4);
 define("ANSWER_REGEX_ANSWER_TYPE_MULTICHOICE_REGULAR", 5);
 define("ANSWER_REGEX_ANSWER_TYPE_MULTICHOICE_HORIZONTAL", 6);
 define("ANSWER_REGEX_ANSWER_TYPE_SHORTANSWER", 7);
-define("ANSWER_REGEX_ALTERNATIVES", 8);
+define("ANSWER_REGEX_ANSWER_TYPE_SHORTANSWER_C", 8);
+define("ANSWER_REGEX_ALTERNATIVES", 9);
 
 function qtype_multianswer_extract_question($text) {
     $question = new stdClass;
@@ -993,6 +994,9 @@ function qtype_multianswer_extract_question($text) {
         } else if(!empty($answerregs[ANSWER_REGEX_ANSWER_TYPE_SHORTANSWER])) {
             $wrapped->qtype = 'shortanswer';
             $wrapped->usecase = 0;
+        } else if(!empty($answerregs[ANSWER_REGEX_ANSWER_TYPE_SHORTANSWER_C])) {
+            $wrapped->qtype = 'shortanswer';
+            $wrapped->usecase = 1;
         } else if(!empty($answerregs[ANSWER_REGEX_ANSWER_TYPE_MULTICHOICE])) {
             $wrapped->qtype = 'multichoice';
             $wrapped->single = 1;