]> git.mjollnir.org Git - moodle.git/commitdiff
quiz reports: MDL-20316 per-question averages not shown with the quiz only allows...
authortjhunt <tjhunt>
Fri, 18 Sep 2009 13:42:23 +0000 (13:42 +0000)
committertjhunt <tjhunt>
Fri, 18 Sep 2009 13:42:23 +0000 (13:42 +0000)
Problem found thanks to OU testing. Fix thanks to Mahmoud Kassaie.

mod/quiz/report/overview/overview_table.php
mod/quiz/report/reportlib.php

index 7917f10edcde3f511bba05e7eb11e1c424eba266..cf3420c02b54675ad09d09e59b7c56f9b32d0e96 100644 (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());
             }
index 424158788febb165644846b7b35a790f330588eb..a0b47aefb80a204f3902b4b4b00b2c26310a1ac4 100644 (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";