Bug #3481 - wildcard problem in cloze question. Thanks to Joseph Rezeau. Merged from MOODLE_16_STABLE, not a straight merge becuase of other 1.7 changes.
This commit is contained in:
@@ -234,32 +234,14 @@ class embedded_cloze_qtype extends default_questiontype {
|
||||
$chosenanswer = null;
|
||||
switch ($wrapped->qtype) {
|
||||
case 'numerical':
|
||||
$testedstate = clone($state);
|
||||
$testedstate->responses[''] = $response;
|
||||
$raw_grade = 0;
|
||||
foreach ($answers as $answer) {
|
||||
if($QTYPES[$wrapped->qtype]
|
||||
->test_response($wrapped, $testedstate, $answer)) {
|
||||
if (empty($raw_grade) || $raw_grade < $answer->fraction) {
|
||||
$chosenanswer = clone($answer);
|
||||
$raw_grade = $answer->fraction;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'shortanswer':
|
||||
$testedstate = clone($state);
|
||||
$testedstate->responses[''] = $response;
|
||||
$teststate = clone($state);
|
||||
$raw_grade = 0;
|
||||
foreach ($answers as $answer) {
|
||||
$teststate->responses[''] = trim($answer->answer);
|
||||
if($QTYPES[$wrapped->qtype]
|
||||
->compare_responses($wrapped, $testedstate, $teststate)) {
|
||||
if (empty($raw_grade) || $raw_grade < $answer->fraction) {
|
||||
$chosenanswer = clone($answer);
|
||||
$raw_grade = $answer->fraction;
|
||||
}
|
||||
->test_response($wrapped, $testedstate, $answer)) {
|
||||
$chosenanswer = clone($answer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user