From: tjhunt Date: Tue, 16 Jan 2007 17:51:05 +0000 (+0000) Subject: Fix multiple-choice multiple-answer grading code. Merged from MOODLE_17_STABLE. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=f38ceee677376699f29c9780e8cda70cd20e7597;p=moodle.git Fix multiple-choice multiple-answer grading code. Merged from MOODLE_17_STABLE. --- diff --git a/question/type/multichoice/questiontype.php b/question/type/multichoice/questiontype.php index cfa9bee52a..fda824f50b 100644 --- a/question/type/multichoice/questiontype.php +++ b/question/type/multichoice/questiontype.php @@ -346,12 +346,11 @@ class question_multichoice_qtype extends default_questiontype { } function grade_responses(&$question, &$state, $cmoptions) { + $state->raw_grade = 0; if($question->options->single) { $response = reset($state->responses); if ($response) { $state->raw_grade = $question->options->answers[$response]->fraction; - } else { - $state->raw_grade = 0; } } else { foreach ($state->responses as $response) { @@ -360,10 +359,11 @@ class question_multichoice_qtype extends default_questiontype { } } } - + // Make sure we don't assign negative or too high marks $state->raw_grade = min(max((float) $state->raw_grade, 0.0), 1.0) * $question->maxgrade; + // Apply the penalty for this attempt $state->penalty = $question->penalty * $question->maxgrade;