Fix problem with multichoice question grading. Merged from MOODLE_17_STABLE.

This commit is contained in:
tjhunt 2006-10-19 11:54:17 +00:00
parent f6bde593c7
commit ef95c65ed1

View file

@ -339,17 +339,21 @@ class question_multichoice_qtype extends default_questiontype {
include("$CFG->dirroot/question/type/multichoice/display.html"); include("$CFG->dirroot/question/type/multichoice/display.html");
} }
function grade_responses(&$question, &$state, $cmoptions) { function grade_responses(&$question, &$state, $cmoptions) {
if($question->options->single) { if($question->options->single) {
$state->raw_grade = $question->options->answers[reset($state->responses)]->fraction; $response = reset($state->responses);
if ($response) {
$state->raw_grade = $question->options->answers[$response]->fraction;
} else { } else {
$state->raw_grade = 0; $state->raw_grade = 0;
}
} else {
foreach ($state->responses as $response) { foreach ($state->responses as $response) {
if ($response) {
$state->raw_grade += $question->options->answers[$response]->fraction; $state->raw_grade += $question->options->answers[$response]->fraction;
} }
} }
}
// Make sure we don't assign negative or too high marks // Make sure we don't assign negative or too high marks
$state->raw_grade = min(max((float) $state->raw_grade, $state->raw_grade = min(max((float) $state->raw_grade,