From 3c334a7a81ec29e00b4caff86ca6d4abde8690c0 Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Fri, 24 Aug 2007 07:14:23 +0000 Subject: [PATCH] hide hidden grades from users with no capability in user report --- grade/report/user/lib.php | 69 +++++++++++++++++++++------------------ lang/en_utf8/grades.php | 1 + 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/grade/report/user/lib.php b/grade/report/user/lib.php index 40e6331bd40..0fa14c15a4c 100644 --- a/grade/report/user/lib.php +++ b/grade/report/user/lib.php @@ -139,46 +139,53 @@ class grade_report_user extends grade_report { $excluded = ''; } - if ($grade_item->scaleid) { - // using scales - if ($scale = get_record('scale', 'id', $grade_item->scaleid)) { - $scales = explode(",", $scale->scale); - // reindex because scale is off 1 - // invalid grade if gradeval < 1 - if ((int) $grade_grade->finalgrade < 1) { - $data[] = $excluded.'-'; - } else { - $data[] = $excluded.$scales[$grade_grade->finalgrade-1]; - } - } + if ($grade_grade->is_hidden() && !has_capability('moodle/grade:viewhidden', get_context_instance(CONTEXT_COURSE, $grade_item->courseid))) { + $data[] = get_string('gradedon', 'grades', userdate($grade_grade->timemodified)); + } else { - // normal grade, or text, just display - $data[] = $excluded.format_float($grade_grade->finalgrade, $decimalpoints); + if ($grade_item->scaleid) { + // using scales + if ($scale = get_record('scale', 'id', $grade_item->scaleid)) { + $scales = explode(",", $scale->scale); + // reindex because scale is off 1 + // invalid grade if gradeval < 1 + if ((int) $grade_grade->finalgrade < 1) { + $data[] = $excluded.'-'; + } else { + $data[] = $excluded.$scales[$grade_grade->finalgrade-1]; + } + } + } else { + // normal grade, or text, just display + $data[] = $excluded.format_float($grade_grade->finalgrade, $decimalpoints); + } } - /// prints percentage - if ($grade_item->gradetype == GRADE_TYPE_VALUE) { - // processing numeric grade - if ($grade_grade->finalgrade) { - $percentage = format_float(($grade_grade->finalgrade / $grade_item->grademax) * 100, $decimalpoints).'%'; + if ($grade_grade->is_hidden() && !has_capability('moodle/grade:viewhidden', get_context_instance(CONTEXT_COURSE, $grade_item->courseid))) { + $data[] = get_string('gradedon', 'grades', userdate($grade_grade->timemodified)); + } else { + if ($grade_item->gradetype == GRADE_TYPE_VALUE) { + // processing numeric grade + if ($grade_grade->finalgrade) { + $percentage = format_float(($grade_grade->finalgrade / $grade_item->grademax) * 100, $decimalpoints).'%'; + } else { + $percentage = '-'; + } + + } else if ($grade_item->gradetype == GRADE_TYPE_SCALE) { + // processing scale grade + $scale = get_record('scale', 'id', $grade_item->scaleid); + $scalevals = explode(",", $scale->scale); + $percentage = format_float(($grade_grade->finalgrade) / count($scalevals) * 100, $decimalpoints).'%'; + } else { + // text grade $percentage = '-'; } - } else if ($grade_item->gradetype == GRADE_TYPE_SCALE) { - // processing scale grade - $scale = get_record('scale', 'id', $grade_item->scaleid); - $scalevals = explode(",", $scale->scale); - $percentage = format_float(($grade_grade->finalgrade) / count($scalevals) * 100, $decimalpoints).'%'; - - } else { - // text grade - $percentage = '-'; + $data[] = $percentage; } - - $data[] = $percentage; - /// prints rank if ($grade_grade->finalgrade) { /// find the number of users with a higher grade diff --git a/lang/en_utf8/grades.php b/lang/en_utf8/grades.php index 531e19388f7..b8ecda0c5cb 100644 --- a/lang/en_utf8/grades.php +++ b/lang/en_utf8/grades.php @@ -153,6 +153,7 @@ $string['gradebookhistories'] = 'Grade histories'; $string['gradeboundary'] = 'Letter grade boundary'; $string['gradecategory'] = 'Grade Category'; $string['gradecategoryhelp'] = 'Grade Category Help'; +$string['gradedon'] = 'Graded $a'; $string['gradedisplaytype'] = 'Grade display type'; $string['gradeexceptions'] = 'Grade Exceptions'; $string['gradeexceptionshelp'] = 'Grade Exceptions Help';