MDL-11718 partial cleanup in overview report - unfortunately the problems with hidden...
[moodle.git] / grade / report / overview / index.php
1 <?php // $Id$
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 ///////////////////////////////////////////////////////////////////////////
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';
30 $courseid = optional_param('id', $COURSE->id, PARAM_INT);
31 $userid   = optional_param('userid', $USER->id, PARAM_INT);
33 /// basic access checks
34 if (!$course = get_record('course', 'id', $courseid)) {
35     print_error('nocourseid');
36 }
37 require_login($course);
39 if (!$user = get_complete_user_data('id', $userid)) {
40     error("Incorrect userid");
41 }
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);
47 $access = true;
48 if (has_capability('moodle/grade:viewall', $context)) {
49     //ok - can view all course grades
51 } else if ($user->id == $USER->id and has_capability('moodle/grade:view', $context) and $course->showgrades) {
52     //ok - can view own grades
54 } else if (has_capability('moodle/grade:view', $usercontext) and $course->showgrades) {
55     // ok - can view grades of this user- parent most probably
57 } else {
58     $acces = false;
59 }
61 /// return tracking object
62 $gpr = new grade_plugin_return(array('type'=>'report', 'plugin'=>'overview', 'courseid'=>$course->id, 'userid'=>$userid));
64 /// last selected report session tracking
65 if (!isset($USER->grade_last_report)) {
66     $USER->grade_last_report = array();
67 }
68 $USER->grade_last_report[$course->id] = 'overview';
70 /// Build navigation
71 $strgrades  = get_string('grades');
72 $reportname = get_string('modulename', 'gradereport_overview');
74 $navigation = grade_build_nav(__FILE__, $reportname, $course->id);
76 /// Print header
77 print_header_simple($strgrades.': '.$reportname, ': '.$strgrades, $navigation,
78                     '', '', true, '', navmenu($course));
80 /// Print the plugin selector at the top
81 print_grade_plugin_selector($course->id, 'report', 'overview');
83 if ($access) {
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);
88     // Create a report instance
89     $report = new grade_report_overview($userid, $gpr, $context);
91     // print the page
92     print_heading(get_string('modulename', 'gradereport_overview'). ' - '.fullname($report->user));
94     if ($report->fill_table()) {
95         echo $report->print_table(true);
96     }
98 } else {
99     // no access to grades!
100     echo "Can not view grades."; //TODO: localize
102 print_footer($course);
104 ?>