From d33986dbe6d2b4311937b302e1f35e195c42831a Mon Sep 17 00:00:00 2001 From: rkingdon Date: Wed, 3 Dec 2003 17:38:49 +0000 Subject: [PATCH] Tidy up return of grades in exercise_grades routine. --- mod/exercise/lib.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/mod/exercise/lib.php b/mod/exercise/lib.php index e9a2ee39d4f..f38da93aba3 100644 --- a/mod/exercise/lib.php +++ b/mod/exercise/lib.php @@ -345,7 +345,7 @@ global $EXERCISE_FWEIGHTS; // first get the teacher's grade for the best submission if ($bestgrades = exercise_get_best_submission_grades($exercise)) { foreach ($bestgrades as $grade) { - $return->grades[$grade->userid] = $grade->grade * + $usergrade[$grade->userid] = $grade->grade * $EXERCISE_FWEIGHTS[$exercise->teacherweight] * $scaling; } } @@ -353,7 +353,7 @@ global $EXERCISE_FWEIGHTS; else { // use mean values if ($meangrades = exercise_get_mean_submission_grades($exercise)) { foreach ($meangrades as $grade) { - $return->grades[$grade->userid] = $grade->grade * + $usergrade[$grade->userid] = $grade->grade * $EXERCISE_FWEIGHTS[$exercise->teacherweight] * $scaling; } } @@ -362,12 +362,18 @@ global $EXERCISE_FWEIGHTS; if ($assessments = exercise_get_teacher_submission_assessments($exercise)) { foreach ($assessments as $assessment) { // add the grading grade if the student's work has been assessed - if (isset($return->grades[$assessment->userid])) { - $return->grades[$assessment->userid] += $assessment->gradinggrade * + if (isset($usergrade[$assessment->userid])) { + $usergrade[$assessment->userid] += $assessment->gradinggrade * $EXERCISE_FWEIGHTS[$exercise->gradingweight] * $scaling * 100.0 / COMMENTSCALE; } } } + // tidy the numbers and set up the return array + if (isset($usergrade)) { + foreach ($usergrade as $userid => $g) { + $return->grades[$userid] = number_format($g, 1); + } + } $return->maxgrade = $exercise->grade; return $return; @@ -1088,8 +1094,10 @@ function exercise_get_mean_grade($submission) { /////////////////////////////////////////////////////////////////////////////////////////////// function exercise_get_mean_submission_grades($exercise) { // Returns the mean grades of students' submissions +// ignores hot assessments global $CFG; + $timenow = time(); $grades = get_records_sql("SELECT DISTINCT u.userid, AVG(a.grade) grade FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}exercise_assessments a, {$CFG->prefix}user_students u @@ -1097,6 +1105,7 @@ function exercise_get_mean_submission_grades($exercise) { AND s.userid = u.userid AND s.exerciseid = $exercise->id AND a.submissionid = s.id + AND a.timecreated < $timenow GROUP BY u.userid"); return $grades; }