Fix multiple-choice multiple-answer grading code. Merged from MOODLE_17_STABLE.

This commit is contained in:
tjhunt 2007-01-16 17:51:05 +00:00
parent b6fd063054
commit f38ceee677

View File

@ -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;