Beispiel #1
0
        if ($user_selector) {
            $renderer = $PAGE->get_renderer('gradereport_overview');
            echo $renderer->graded_users_selector('overview', $course, $userid, $currentgroup, false);
        }
        if ($currentgroup and !groups_is_member($currentgroup, $userid)) {
            echo $OUTPUT->notification(get_string('groupusernotmember', 'error'));
        } else {
            if ($report->fill_table()) {
                echo '<br />' . $report->print_table(true);
            }
        }
    }
} else {
    // Non-admins and users viewing from the site context can just see their own report.
    // Create a report instance
    $report = new grade_report_overview($userid, $gpr, $context);
    if (!empty($report->studentcourseids)) {
        // If the course id matches the site id then we don't have a course context to work with.
        // Display a standard page.
        if ($courseid == SITEID) {
            $PAGE->set_pagelayout('standard');
            $header = get_string('grades', 'grades') . ' - ' . fullname($report->user);
            $PAGE->set_title($header);
            $PAGE->set_heading(fullname($report->user));
            if ($USER->id != $report->user->id) {
                $PAGE->navigation->extend_for_user($report->user);
                if ($node = $PAGE->settingsnav->get('userviewingsettings' . $report->user->id)) {
                    $node->forceopen = true;
                }
            } else {
                if ($node = $PAGE->settingsnav->get('usercurrentsettings', navigation_node::TYPE_CONTAINER)) {
Beispiel #2
0
/// last selected report session tracking
if (!isset($USER->grade_last_report)) {
    $USER->grade_last_report = array();
}
$USER->grade_last_report[$course->id] = 'overview';
/// Build navigation
$strgrades = get_string('grades');
$reportname = get_string('modulename', 'gradereport_overview');
$navigation = grade_build_nav(__FILE__, $reportname, $course->id);
/// Print header
print_header_simple($strgrades . ': ' . $reportname, ': ' . $strgrades, $navigation, '', '', true, '', navmenu($course));
/// Print the plugin selector at the top
print_grade_plugin_selector($course->id, 'report', 'overview');
if ($access) {
    //first make sure we have proper final grades - this must be done before constructing of the grade tree
    grade_regrade_final_grades($course->id);
    // Create a report instance
    $report = new grade_report_overview($userid, $gpr, $context);
    $gradetotal = 0;
    $gradesum = 0;
    // print the page
    print_heading(get_string('modulename', 'gradereport_overview') . ' - ' . fullname($report->user));
    if ($report->fill_table()) {
        echo $report->print_table(true);
    }
} else {
    // no access to grades!
    echo "Can not view grades.";
    //TODO: localize
}
print_footer($course);
Beispiel #3
0
 /**
  * Trigger the user report events, do the same that the web interface view of the report
  *
  * @param int $courseid id of course
  * @param int $userid id of the user the report belongs to
  * @return array of warnings and status result
  * @since Moodle 3.2
  * @throws moodle_exception
  */
 public static function view_grade_report($courseid, $userid = 0)
 {
     global $USER;
     $params = self::validate_parameters(self::view_grade_report_parameters(), array('courseid' => $courseid, 'userid' => $userid));
     $warnings = array();
     $course = get_course($params['courseid']);
     $context = context_course::instance($course->id);
     self::validate_context($context);
     $userid = $params['userid'];
     if (empty($userid)) {
         $userid = $USER->id;
     } else {
         $user = core_user::get_user($userid, '*', MUST_EXIST);
         core_user::require_active_user($user);
     }
     $systemcontext = context_system::instance();
     $personalcontext = context_user::instance($userid);
     $access = grade_report_overview::check_access($systemcontext, $context, $personalcontext, $course, $userid);
     if (!$access) {
         throw new moodle_exception('nopermissiontoviewgrades', 'error');
     }
     grade_report_overview::viewed($context, $course->id, $userid);
     $result = array();
     $result['status'] = true;
     $result['warnings'] = $warnings;
     return $result;
 }
        // do not list all users
    } else {
        // Only show one user's report
        $report = new grade_report_overview($userid, $gpr, $context);
        print_grade_page_head($courseid, 'report', 'overview', get_string('pluginname', 'gradereport_overview') . ' - ' . fullname($report->user));
        groups_print_course_menu($course, $gpr->get_return_url('index.php?id=' . $courseid, array('userid' => 0)));
        if ($user_selector) {
            $renderer = $PAGE->get_renderer('gradereport_overview');
            echo $renderer->graded_users_selector('overview', $course, $userid, $currentgroup, false);
        }
        if ($currentgroup and !groups_is_member($currentgroup, $userid)) {
            echo $OUTPUT->notification(get_string('groupusernotmember', 'error'));
        } else {
            if ($report->fill_table()) {
                echo '<br />' . $report->print_table(true);
            }
        }
    }
} else {
    //Non-admins will see just their own report
    // Create a report instance
    $report = new grade_report_overview($userid, $gpr, $context);
    // print the page
    print_grade_page_head($courseid, 'report', 'overview', get_string('pluginname', 'gradereport_overview') . ' - ' . fullname($report->user));
    if ($report->fill_table()) {
        echo '<br />' . $report->print_table(true);
    }
}
$event = \gradereport_overview\event\grade_report_viewed::create(array('context' => $context, 'courseid' => $courseid, 'relateduserid' => $userid));
$event->trigger();
echo $OUTPUT->footer();
Beispiel #5
0
/**
 * Add nodes to myprofile page.
 *
 * @param \core_user\output\myprofile\tree $tree Tree object
 * @param stdClass $user user object
 * @param bool $iscurrentuser
 * @param stdClass $course Course object
 */
function gradereport_overview_myprofile_navigation(core_user\output\myprofile\tree $tree, $user, $iscurrentuser, $course)
{
    if (empty($course)) {
        // We want to display these reports under the site context.
        $course = get_fast_modinfo(SITEID)->get_course();
    }
    $systemcontext = context_system::instance();
    $usercontext = context_user::instance($user->id);
    $coursecontext = context_course::instance($course->id);
    if (grade_report_overview::check_access($systemcontext, $coursecontext, $usercontext, $course, $user->id)) {
        $url = new moodle_url('/grade/report/overview/index.php', array('userid' => $user->id));
        $node = new core_user\output\myprofile\node('reports', 'grades', get_string('gradesoverview', 'gradereport_overview'), null, $url);
        $tree->add_node($node);
    }
}