aa330ebb |
1 | <?php // $Id$ |
2 | |
3 | /////////////////////////////////////////////////////////////////////////// |
4 | // NOTICE OF COPYRIGHT // |
5 | // // |
6 | // Moodle - Modular Object-Oriented Dynamic Learning Environment // |
7 | // http://moodle.org // |
8 | // // |
9 | // Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com // |
10 | // // |
11 | // This program is free software; you can redistribute it and/or modify // |
12 | // it under the terms of the GNU General Public License as published by // |
13 | // the Free Software Foundation; either version 2 of the License, or // |
14 | // (at your option) any later version. // |
15 | // // |
16 | // This program is distributed in the hope that it will be useful, // |
17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of // |
18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // |
19 | // GNU General Public License for more details: // |
20 | // // |
21 | // http://www.gnu.org/copyleft/gpl.html // |
22 | // // |
23 | /////////////////////////////////////////////////////////////////////////// |
24 | |
25 | require_once '../../../config.php'; |
26 | require_once $CFG->libdir.'/gradelib.php'; |
27 | require_once $CFG->dirroot.'/grade/lib.php'; |
28 | require_once $CFG->dirroot.'/grade/report/overview/lib.php'; |
29 | |
bc430af2 |
30 | $courseid = optional_param('id', $COURSE->id, PARAM_INT); |
aa330ebb |
31 | $userid = optional_param('userid', $USER->id, PARAM_INT); |
32 | |
33 | /// basic access checks |
bc430af2 |
34 | if (!$course = get_record('course', 'id', $courseid)) { |
aa330ebb |
35 | print_error('nocourseid'); |
36 | } |
37 | require_login($course); |
38 | |
39 | if (!$user = get_complete_user_data('id', $userid)) { |
40 | error("Incorrect userid"); |
41 | } |
42 | |
43 | $context = get_context_instance(CONTEXT_COURSE, $course->id); |
44 | $usercontext = get_context_instance(CONTEXT_PERSONAL, $user->id); |
45 | require_capability('gradereport/overview:view', $context); |
46 | |
47 | $access = true; |
48 | if (has_capability('moodle/grade:viewall', $context)) { |
49 | //ok - can view all course grades |
50 | |
51 | } else if ($user->id == $USER->id and has_capability('moodle/grade:view', $context) and $course->showgrades) { |
52 | //ok - can view own grades |
53 | |
54 | } else if (has_capability('moodle/grade:view', $usercontext) and $course->showgrades) { |
55 | // ok - can view grades of this user- parent most probably |
56 | |
57 | } else { |
58 | $acces = false; |
59 | } |
60 | |
61 | /// return tracking object |
bc430af2 |
62 | $gpr = new grade_plugin_return(array('type'=>'report', 'plugin'=>'overview', 'courseid'=>$course->id, 'userid'=>$userid)); |
aa330ebb |
63 | |
64 | /// last selected report session tracking |
65 | if (!isset($USER->grade_last_report)) { |
66 | $USER->grade_last_report = array(); |
67 | } |
bc430af2 |
68 | $USER->grade_last_report[$course->id] = 'overview'; |
aa330ebb |
69 | |
70 | /// Build navigation |
71 | $strgrades = get_string('grades'); |
72 | $reportname = get_string('modulename', 'gradereport_overview'); |
73 | |
74 | $navigation = grade_build_nav(__FILE__, $reportname, $course->id); |
75 | |
76 | /// Print header |
77 | print_header_simple($strgrades.': '.$reportname, ': '.$strgrades, $navigation, |
78 | '', '', true, '', navmenu($course)); |
79 | |
80 | /// Print the plugin selector at the top |
bc430af2 |
81 | print_grade_plugin_selector($course->id, 'report', 'overview'); |
aa330ebb |
82 | |
83 | if ($access) { |
84 | |
85 | //first make sure we have proper final grades - this must be done before constructing of the grade tree |
86 | grade_regrade_final_grades($course->id); |
87 | |
88 | // Create a report instance |
89 | $report = new grade_report_overview($userid, $gpr, $context); |
90 | |
aa330ebb |
91 | // print the page |
bc430af2 |
92 | print_heading(get_string('modulename', 'gradereport_overview'). ' - '.fullname($report->user)); |
aa330ebb |
93 | |
94 | if ($report->fill_table()) { |
95 | echo $report->print_table(true); |
96 | } |
97 | |
98 | } else { |
99 | // no access to grades! |
100 | echo "Can not view grades."; //TODO: localize |
101 | } |
102 | print_footer($course); |
103 | |
104 | ?> |