<form name="assignform" id="assignform" method="post" action="assign.php">
<input type="hidden" name="previoussearch" value="<?php echo $previoussearch ?>" />
+<?php
+if ($userid) {
+ print ('<input type="hidden" name="userid" value="'.$userid.'"/>');
+}
+if ($course->id) {
+ print ('<input type="hidden" name="courseid" value="'.$courseid.'" />');
+}
+?>
<input type="hidden" name="sesskey" value="<?php echo sesskey() ?>" />
<input type="hidden" name="contextid" value="<?php echo $contextid ?>" />
<input type="hidden" name="roleid" value="<?php echo $roleid ?>" />
$previoussearch = ($searchtext != '') or ($previoussearch) ? 1:0;
$timestart = optional_param('timestart', 0, PARAM_INT);
$timeend = optional_param('timened', 0, PARAM_INT);
+ $userid = optional_param('userid', 0, PARAM_INT); // needed for user tabs
+ $courseid = optional_param('courseid', 0, PARAM_INT); // needed for user tabs
+ if ($courseid) {
+ $course = get_record('course', 'id', $courseid);
+ }
+
if (! $site = get_site()) {
redirect("$CFG->wwwroot/$CFG->admin/index.php");
}
* 2) not in role_deny_grant
* end of permission checking
*/
-
$strassignusers = get_string('assignusers', 'role');
$strpotentialusers = get_string('potentialusers', 'role');
$strsearch = get_string('search');
$strshowall = get_string('showall');
- $currenttab = '';
- $tabsmode = 'assign';
- include_once('tabs.php');
+ $context = get_record('context', 'id', $contextid);
+ // we got a few tabs there
+ if ($context->level == CONTEXT_USERID) {
+ print_header();
+
+ $currenttab = 'roles';
+ include_once($CFG->dirroot.'/user/tabs.php');
+ } else {
+ $currenttab = '';
+ $tabsmode = 'assign';
+ include_once('tabs.php');
+ }
+
+
/// Print a help notice about the need to use this page
if (!$frm = data_submitted()) {
// prints a form to swap roles
print ('<form name="rolesform" action="assign.php" method="post">');
print ('<div align="center">'.$strcurrentcontext.': '.print_context_name($context).'<br/>');
- print ('<input type="hidden" name="contextid" value="'.$context->id.'">'.$strcurrentrole.': ');
+ if ($userid) {
+ print ('<input type="hidden" name="userid" value="'.$userid.'" />');
+ }
+ if ($course->id) {
+ print ('<input type="hidden" name="courseid" value="'.$courseid.'" />');
+ }
+ print ('<input type="hidden" name="contextid" value="'.$context->id.'" />'.$strcurrentrole.': ');
choose_from_menu ($options, 'roleid', $roleid, 'choose', $script='rolesform.submit()');
print ('</div></form>');
break;
case CONTEXT_USERID:
+ print_header();
break;
case CONTEXT_COURSECAT:
}
- $toprow[] = new tabobject('roles', $CFG->wwwroot.'/admin/roles/assign.php?contextid='.$context->id, get_string('roles'));
+ $toprow[] = new tabobject('roles', $CFG->wwwroot.'/admin/roles/assign.php?contextid='.$context->id, get_string('roles'));
if (isset($tabsmode)) {
$inactive[] = 'roles';
$currenttab = $mode;
include($CFG->dirroot.'/user/tabs.php');
-
get_all_mods($course->id, $mods, $modnames, $modnamesplural, $modnamesused);
switch ($mode) {
+ case "grade":
+ $course = get_record('course', 'id', required_param('id', PARAM_INT));
+ require_once($CFG->dirroot.'/grade/lib.php');
+ grade_view_all_grades($user->id, 'user');
+ break;
+
case "todaylogs" :
echo '<div class="graph">';
print_log_graph($course, $user->id, "userday.png");
return $grades;
}
-function grade_get_grades() {
+function grade_get_grades($mode='') {
global $CFG;
global $course;
$mods = grade_get_grade_items($course->id);
if ($mods) {
foreach ($mods as $mod) {
// hidden is a gradebook setting for an assignment and visible is a course_module setting
- if (($mod->hidden != 1 && $mod->visible==1) or (isteacher($course->id) && $preferences->show_hidden==1)) {
+ if (($mod->hidden != 1 && $mod->visible==1) or (isteacher($course->id) && $preferences->show_hidden==1 && mode=='grade')) {
$libfile = "$CFG->dirroot/mod/$mod->modname/lib.php";
if (file_exists($libfile)) {
require_once($libfile);
}
}
-function grade_view_all_grades($view_by_student) {
+function grade_view_all_grades($view_by_student, $mode='') { // if mode=='grade' then we are in user view
// displays all grades for the course
global $CFG;
global $course;
- global $preferences;
global $USER;
global $group; // yu: fix for 5814
if (!isteacher($course->id)) {
- $view_by_student = $USER->id;
+ $view_by_student = $USER->id;
}
+ $preferences = grade_get_preferences($course->id);
+
list($grades_by_student, $all_categories) = grade_get_formatted_grades();
-
+
if ($grades_by_student != 0 && $all_categories != 0) {
+
// output a form for the user to download the grades.
- grade_download_form();
+
+ if ($mode!='user') {
+ grade_download_form();
+ }
if ($view_by_student != -1) {
// unset all grades except for this student
}
}
}
+
$grade_columns = $preferences->show_weighted + $preferences->show_points + $preferences->show_percent;
$first = 0;
$total_course_points = 0;
$maxpercent = 0;
$reprint=0;
-
+
echo '<table align="center" class="grades">';
- if (isteacher($course->id) ) {
+ if (!$mode=='user' && isteacher($course->id) ) {
$student_heading_link = get_string('student','grades');
if ($view_by_student == -1) {
$student_heading_link .='<a href="?id='.$course->id.'&action=grades&sort=lastname&group='.$group.'"><br /><font size="-2">'.get_string('sortbylastname','grades').'</font></a>';
$rowcount = 0;
$oddrow = true;
$colcount = 0;
+
foreach($grades_by_student as $student => $categories) {
+
$totalpoints = 0;
$totalgrade = 0;
$total_bonus_points = 0;
$oddrow = !$oddrow;
// set the links to student information based on multiview or individual... if individual go to student info... if many go to individual grades view.
- if (isteacher($course->id)) {
+ if (isteacher($course->id) && !$mode=='user') {
if ($view_by_student != -1) {
$studentviewlink = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$student.'&course='.$course->id.'">'.$grades_by_student[$student]['student_data']['lastname'].', '.$grades_by_student[$student]['student_data']['firstname'].'</a>';
}
$row .= '<td>'. $studentviewlink .'</td>';
}
ksort($categories);
+
foreach($categories as $category => $items) {
if ($category != 'student_data') {
+
if ($first == 0) {
$colcount++;
if ($category == UNCATEGORISED) {
//$total_course_points = $all_categories[$category]['stats']['totalpoints']+ $total_course_points;
}
-
if ($preferences->show_points) {
$row .= '<td align="right">' . $items['stats']['points'] . '</td>';
}
$total_columns = $grade_columns;
}
- if (isteacher($course->id) && $view_by_student == -1) {
+ if (isteacher($course->id) && $view_by_student == -1 && !$mode=='user') {
$grade_sort_link = '<a href="?id='.$course->id.'&action=grades&sort=highgrade&group='.$group.'"><img src="'.$CFG->wwwroot.'/pix/t/down.gif" alt="'.get_string('highgradedescending','grades').'" /></a>';
$grade_sort_link .= '<a href="?id='.$course->id.'&action=grades&sort=highgrade_asc&group='.$group.'"><img src="'.$CFG->wwwroot.'/pix/t/up.gif" alt="'.get_string('highgradeascending','grades').'" /></a>';
$points_sort_link = '<a href="?id='.$course->id.'&action=grades&sort=points&group='.$group.'"><img src="'.$CFG->wwwroot.'/pix/t/down.gif" alt="'.get_string('pointsdescending','grades').'" /></a>';
}
$stats_link = '<a href="javascript:void(0)"onclick="window.open(\'?id='.$course->id.'&action=stats&category=all\',\''.get_string('statslink','grades').'\',\'height=200,width=300,scrollbars=no\')"><font size=-2>'.get_string('statslink','grades').'</font></a>';
$header .= '<th colspan="'.$total_columns.'">'.get_string('total','grades').' '.$stats_link.'</th>';
- if (isteacher($course->id) && $view_by_student == -1) {
+ if (isteacher($course->id) && $view_by_student == -1 && !$mode=='user') {
if ($preferences->show_points) {
$header1 .= '<th>'.get_string('points','grades').'('.$all_categories['stats']['totalpoints'].')';
if ($category != 'student_data' && $all_categories[$category]['stats']['bonus_points'] != 0) {
}
$header1 .= '</tr>';
}
- if (isteacher($course->id)) {
+ if (isteacher($course->id) && !$mode=='user') {
$header .= '<th rowspan="2">'.$student_heading_link.'</th></tr>';
}
// adjust colcount to reflect actual number of columns output
$colcount = $colcount * $grade_columns + $total_columns + 2;
-
+
echo '<tr><th colspan="'.$colcount.'"><font size="+1">'.get_string('allgrades','grades').'</font>';
- if (isteacher($course->id)) {
+ if (isteacher($course->id) && !$mode=='user') {
helpbutton('teacher', get_string('gradehelp','grades'), 'grade');
}
else {
}
}
}
- if (isteacher($course->id) ) {
+ if (isteacher($course->id) && !$mode=='user') {
$row .= '<td>'. $studentviewlink .'</td></tr>';
}
else {
$row .= '</tr>';
}
- echo $row;
+
+ echo $row;
$reprint++;
}
echo '</table>';
/// Current user must be teacher of the course or the course allows user to view their reports
+
+ //print_object($course);
+ //print_object($user);
if (isteacher($course->id) or ($course->showreports and $USER->id == $user->id)) {
$toprow[] = new tabobject('reports', $CFG->wwwroot.'/course/user.php?id='.$course->id.
'&user='.$user->id.'&mode=outline', get_string('activityreports'));
- if (in_array($currenttab, array('outline', 'complete', 'todaylogs', 'alllogs', 'stats'))) {
+ if (in_array($currenttab, array('outline', 'complete', 'todaylogs', 'alllogs', 'stats', 'grade'))) {
$inactive = array('reports');
$activetwo = array('reports');
$secondrow[] = new tabobject('stats',$CFG->wwwroot.'/course/user.php?id='.$course->id.
'&user='.$user->id.'&mode=stats',get_string('stats'));
}
+
+ // needs permission checking!!!
+
+ $secondrow[] = new tabobject('grade', $CFG->wwwroot.'/course/user.php?id='.$course->id.
+ '&user='.$user->id.'&mode=grade', get_string('grade'));
+
}
}
} //close last bracket (individual tags)
+
+ /// this needs permission checkings
+
+ $context = get_context_instance(CONTEXT_USERID, $user->id);
+ $toprow[] = new tabobject('roles', $CFG->wwwroot.'/admin/roles/assign.php?contextid='.$context->id.'&userid='.$user->id.'&courseid='.$course->id
+ ,get_string('roles'));
+
/// Add second row to display if there is one
if (!empty($secondrow)) {