quiz reports: MDL-20316 per-question averages not shown with the quiz only allows one attempt.

Problem found thanks to OU testing. Fix thanks to Mahmoud Kassaie.
This commit is contained in:
tjhunt 2009-09-18 13:42:23 +00:00
parent 20e4b1d344
commit 1dc12a6475
2 changed files with 3 additions and 3 deletions

View File

@ -50,7 +50,7 @@ class quiz_report_overview_table extends table_sql {
$groupaveragerow = array($namekey => get_string('groupavg', 'grades'),
'sumgrades' => quiz_format_grade($this->quiz, $groupaverage->grade),
'feedbacktext'=> strip_tags(quiz_report_feedback_for_grade($groupaverage->grade, $this->quiz->id)));
if($this->detailedmarks && $this->qmsubselect) {
if($this->detailedmarks && ($this->qmsubselect || $this->quiz->attempts == 1)) {
$avggradebyq = quiz_get_average_grade_for_questions($this->quiz, $this->groupstudents);
$groupaveragerow += quiz_format_average_grade_for_questions($avggradebyq, $this->questions, $this->quiz, $this->is_downloading());
}
@ -62,7 +62,7 @@ class quiz_report_overview_table extends table_sql {
$overallaveragerow = array($namekey => get_string('overallaverage', 'grades'),
'sumgrades' => quiz_format_grade($this->quiz, $overallaverage->grade),
'feedbacktext'=> strip_tags(quiz_report_feedback_for_grade($overallaverage->grade, $this->quiz->id)));
if($this->detailedmarks && $this->qmsubselect) {
if($this->detailedmarks && ($this->qmsubselect || $this->quiz->attempts == 1)) {
$avggradebyq = quiz_get_average_grade_for_questions($this->quiz, $this->students);
$overallaveragerow += quiz_format_average_grade_for_questions($avggradebyq, $this->questions, $this->quiz, $this->is_downloading());
}

View File

@ -123,7 +123,7 @@ function quiz_get_average_grade_for_questions($quiz, $userids){
LEFT JOIN {question_sessions} qns ON (qns.attemptid = qa.uniqueid)
LEFT JOIN {question_states} qs ON (qns.newgraded = qs.id AND qs.event IN (".QUESTION_EVENTS_GRADED."))
WHERE " .
"($qmfilter) AND " .
($qmfilter?$qmfilter.' AND ':'') .
"qa.userid $usql AND " .
"qa.quiz = ? ".
"GROUP BY qns.questionid";