From: mark-nielsen Date: Tue, 28 Nov 2006 05:54:43 +0000 (+0000) Subject: Merged changes from MOODLE_17_STABLE for MDL-7707 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=512ce79274af01fad0d0972c2aa5f26e29a952b3;p=moodle.git Merged changes from MOODLE_17_STABLE for MDL-7707 --- diff --git a/mod/lesson/index.php b/mod/lesson/index.php index 497ad70696..d15550582f 100644 --- a/mod/lesson/index.php +++ b/mod/lesson/index.php @@ -8,7 +8,8 @@ **/ require_once("../../config.php"); - require_once("locallib.php"); + require_once($CFG->dirroot.'/mod/lesson/lib.php'); + require_once($CFG->dirroot.'/mod/lesson/locallib.php'); $id = required_param('id', PARAM_INT); // course @@ -29,8 +30,8 @@ /// Print the header - if ($course->id != SITEID) { - $navigation = "id\">$course->shortname ->"; + if ($course->category) { + $navigation = "wwwroot/course/view.php?id=$course->id\">$course->shortname ->"; } else { $navigation = ''; } @@ -86,19 +87,13 @@ if (has_capability('mod/lesson:manage', $context)) { $grade_value = $lesson->grade; } else { - // it's a student, show their mean or maximum grade - if ($lesson->usemaxgrade) { - $grade = get_record_sql("SELECT MAX(grade) as grade FROM {$CFG->prefix}lesson_grades - WHERE lessonid = $lesson->id AND userid = $USER->id GROUP BY userid"); - } else { - $grade = get_record_sql("SELECT AVG(grade) as grade FROM {$CFG->prefix}lesson_grades - WHERE lessonid = $lesson->id AND userid = $USER->id GROUP BY userid"); - } - if ($grade) { + // it's a student, show their grade + $grade_value = 0; + if ($return = lesson_grades($lesson->id)) { // grades are stored as percentages - $grade_value = number_format($grade->grade * $lesson->grade / 100, 1); - } else { - $grade_value = 0; + if (isset($return->grades[$USER->id])) { + $grade_value = $return->grades[$USER->id]; + } } } $table->data[] = array ($lesson->section, $link, $grade_value, $due); diff --git a/mod/lesson/lib.php b/mod/lesson/lib.php index b6ec3a2179..3a3ea18474 100644 --- a/mod/lesson/lib.php +++ b/mod/lesson/lib.php @@ -388,14 +388,24 @@ function lesson_grades($lessonid) { if (!$lesson = get_record("lesson", "id", $lessonid)) { return NULL; } - if ($lesson->usemaxgrade) { - $grades = get_records_sql_menu("SELECT userid,MAX(grade) FROM {$CFG->prefix}lesson_grades WHERE - lessonid = $lessonid GROUP BY userid"); - } else { - $grades = get_records_sql_menu("SELECT userid,AVG(grade) FROM {$CFG->prefix}lesson_grades WHERE + if ($lesson->retake) { + if ($lesson->usemaxgrade) { + $grades = get_records_sql_menu("SELECT userid,MAX(grade) FROM {$CFG->prefix}lesson_grades WHERE + lessonid = $lessonid GROUP BY userid"); + } else { + $grades = get_records_sql_menu("SELECT userid,AVG(grade) FROM {$CFG->prefix}lesson_grades WHERE lessonid = $lessonid GROUP BY userid"); + } + } else { + // Retakes is turned Off; only count first attempt + $firstgrades = get_records_sql("SELECT userid, MIN(completed), grade FROM {$CFG->prefix}lesson_grades WHERE lessonid = $lessonid GROUP BY userid"); + $grades = array(); + if (!empty($firstgrades)) { + foreach($firstgrades as $userid => $info) { + $grades[$userid] = $info->grade; + } + } } - // convert grades from percentages and tidy the numbers if (!$lesson->practice) { // dont display practice lessons if ($grades) {