From ed1daaa9d7b5d7e1e8885854d7f2add117c4f24c Mon Sep 17 00:00:00 2001 From: moodler Date: Wed, 10 Sep 2003 05:02:39 +0000 Subject: [PATCH] Quiz grades can be set to zero. If so, then grades are not shown to students, nor is a column added to the gradebook (although they are still stored and calculated internally) --- mod/quiz/attempt.php | 4 +++- mod/quiz/lib.php | 5 +++++ mod/quiz/mod.html | 4 ++-- mod/quiz/review.php | 4 +++- mod/quiz/view.php | 48 ++++++++++++++++++++++++++++++-------------- 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/mod/quiz/attempt.php b/mod/quiz/attempt.php index 0c56224f73..e417df9d4a 100644 --- a/mod/quiz/attempt.php +++ b/mod/quiz/attempt.php @@ -134,7 +134,9 @@ $strscore = get_string("score", "quiz"); print_heading("$strscore: $result->sumgrades/$quiz->sumgrades ($result->percentage %)"); - print_heading("$strgrade: $result->grade/$quiz->grade"); + if ($quiz->grade) { + print_heading("$strgrade: $result->grade/$quiz->grade"); + } print_continue("view.php?id=$cm->id"); diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 82ca768146..5f6b129e75 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -210,6 +210,11 @@ function quiz_cron () { function quiz_grades($quizid) { /// Must return an array of grades, indexed by user, and a max grade. + $quiz = get_record("quiz", "id", $quizid); + if (empty($quiz) or empty($quiz->grade)) { + return NULL; + } + $return->grades = get_records_menu("quiz_grades", "quiz", $quizid, "", "userid,grade"); $return->maxgrade = get_field("quiz", "grade", "id", "$quizid"); return $return; diff --git a/mod/quiz/mod.html b/mod/quiz/mod.html index 85f8967fba..e1f102d70e 100644 --- a/mod/quiz/mod.html +++ b/mod/quiz/mod.html @@ -41,7 +41,7 @@ $form->shuffleanswers = 1; } if (!isset($form->grade)) { - $form->grade = ""; + $form->grade = 0; } if (!isset($form->questions)) { $form->questions = ""; @@ -202,7 +202,7 @@

:

=1; $i--) { + for ($i=100; $i>=0; $i--) { $grades[$i] = $i; } choose_from_menu($grades, "grade", "$form->grade", ""); diff --git a/mod/quiz/review.php b/mod/quiz/review.php index 4dbeda2dc4..20b9950e81 100644 --- a/mod/quiz/review.php +++ b/mod/quiz/review.php @@ -103,7 +103,9 @@ $table->data[] = array("$strtimetaken:", $timetaken); $table->data[] = array("$strtimecompleted:", userdate($attempt->timefinish)); $table->data[] = array("$strscore:", "$result->sumgrades/$quiz->sumgrades ($result->percentage %)"); - $table->data[] = array("$strgrade:", "$result->grade/$quiz->grade"); + if ($quiz->grade) { + $table->data[] = array("$strgrade:", "$result->grade/$quiz->grade"); + } print_table($table); diff --git a/mod/quiz/view.php b/mod/quiz/view.php index 64ba336a82..bd650f4f11 100644 --- a/mod/quiz/view.php +++ b/mod/quiz/view.php @@ -101,26 +101,42 @@ $mygrade = quiz_get_best_grade($quiz->id, $USER->id); if ($numattempts) { - $table->head = array($strattempt, $strtimetaken, $strtimecompleted, "$strgrade / $quiz->grade"); - $table->align = array("center", "center", "left", "right"); - $table->width = array("", "", "", ""); + if ($quiz->grade) { + $table->head = array($strattempt, $strtimetaken, $strtimecompleted, "$strgrade / $quiz->grade"); + $table->align = array("center", "center", "left", "right"); + $table->width = array("", "", "", ""); + } else { // No grades are being used + $table->head = array($strattempt, $strtimetaken, $strtimecompleted); + $table->align = array("center", "center", "left"); + $table->width = array("", "", ""); + } foreach ($attempts as $attempt) { if ($timetaken = ($attempt->timefinish - $attempt->timestart)) { $timetaken = format_time($timetaken); } else { $timetaken = "-"; } - $attemptgrade = format_float(($attempt->sumgrades/$quiz->sumgrades)*$quiz->grade); - if ($attemptgrade == $mygrade) { - $attemptgrade = "$attemptgrade"; - } - if (!$available and $quiz->review) { - $attemptgrade = "id&attempt=$attempt->id\">$attemptgrade"; + if ($quiz->grade) { + $attemptgrade = format_float(($attempt->sumgrades/$quiz->sumgrades)*$quiz->grade); + if ($attemptgrade == $mygrade) { + $attemptgrade = "$attemptgrade"; + } + if (!$available and $quiz->review) { + $attemptgrade = "id&attempt=$attempt->id\">$attemptgrade"; + $attempt->attempt = "id&attempt=$attempt->id\">$attempt->attempt"; + } + $table->data[] = array( $attempt->attempt, + format_time($attempt->timefinish - $attempt->timestart), + userdate($attempt->timefinish), + $attemptgrade); + } else { // No grades are being used + if (!$available and $quiz->review) { + $attempt->attempt = "id&attempt=$attempt->id\">$attempt->attempt"; + } + $table->data[] = array( $attempt->attempt, + format_time($attempt->timefinish - $attempt->timestart), + userdate($attempt->timefinish)); } - $table->data[] = array( $attempt->attempt, - format_time($attempt->timefinish - $attempt->timestart), - userdate($attempt->timefinish), - $attemptgrade); } print_table($table); } @@ -140,7 +156,7 @@ if ($numattempts < $quiz->attempts or !$quiz->attempts) { if ($available) { $options["id"] = $cm->id; - if ($numattempts) { + if ($numattempts and $quiz->grade) { print_heading("$strbestgrade: $mygrade / $quiz->grade."); } echo "
"; @@ -150,7 +166,9 @@ } } else { print_heading(get_string("nomoreattempts", "quiz")); - print_heading(get_string("yourfinalgradeis", "quiz", "$mygrade / $quiz->grade")); + if ($quiz->grade) { + print_heading(get_string("yourfinalgradeis", "quiz", "$mygrade / $quiz->grade")); + } } } -- 2.39.5