MDL-11718 course settings for reports - for now only user report (rank and showing of hidden items)

This commit is contained in:
skodak 2007-10-27 15:33:43 +00:00
parent 57068674c6
commit 26ed030543
5 changed files with 105 additions and 33 deletions

View file

@ -54,6 +54,16 @@ class grade_report_user extends grade_report {
*/
var $gseq;
/**
* show student ranks
*/
var $showrank;
/**
* Show hidden items even when user does not have required cap
*/
var $showhiddenitems;
/**
* Constructor. Sets local copies of user preferences and initialises grade_tree.
* @param int $courseid
@ -65,6 +75,9 @@ class grade_report_user extends grade_report {
global $CFG;
parent::grade_report($courseid, $gpr, $context);
$this->showrank = grade_get_setting($this->courseid, 'report_user_showrank', !empty($CFG->grade_report_user_showrank));
$this->showhiddenitems = grade_get_setting($this->courseid, 'report_user_showhiddenitems', !empty($CFG->grade_report_user_showhiddenitems));
$switch = grade_get_setting($this->courseid, 'aggregationposition', $CFG->grade_aggregationposition);
// Grab the grade_tree for this course
@ -94,7 +107,7 @@ class grade_report_user extends grade_report {
*/
// setting up table headers
if (!empty($CFG->grade_userreport_showrank)) {
if ($this->showrank) {
// TODO: this is broken if hidden grades present!!
$tablecolumns = array('itemname', 'category', 'grade', 'percentage', 'rank', 'feedback');
$tableheaders = array($this->get_lang_string('gradeitem', 'grades'), $this->get_lang_string('category'), $this->get_lang_string('grade'),
@ -162,7 +175,7 @@ class grade_report_user extends grade_report {
$grade_item =& $items[$itemid];
$grade_grade =& $grades[$itemid];
if (empty($CFG->grade_userreport_showhiddenitems) and !$canviewhidden and $grade_item->is_hidden()) {
if (!$this->showhiddenitems and !$canviewhidden and $grade_item->is_hidden()) {
continue;
}
@ -215,15 +228,15 @@ class grade_report_user extends grade_report {
}
/// prints rank
if (!empty($CFG->grade_userreport_showrank)) {
if ($this->showrank) {
// TODO: this is broken if hidden grades present!!
if ($grade_item->needsupdate) {
$data[] = '<span class="gradingerror">'.get_string('error').'</span>';
} else if (is_null($gradeval)) {
// no grade, no rank
$data[] = '-';
} else {
/// find the number of users with a higher grade
$sql = "SELECT COUNT(DISTINCT(userid))
@ -231,7 +244,7 @@ class grade_report_user extends grade_report {
WHERE finalgrade > {$grade_grade->finalgrade}
AND itemid = {$grade_item->id}";
$rank = count_records_sql($sql) + 1;
$data[] = "$rank/$numusers";
}
}
@ -276,6 +289,39 @@ class grade_report_user extends grade_report {
*/
function process_data($data) {
}
}
function grade_report_user_settings_definition(&$mform) {
global $CFG;
$options = array(-1 => get_string('default', 'grades'),
0 => get_string('hide'),
1 => get_string('show'));
if (empty($CFG->grade_userreport_showrank)) {
$options[-1] = get_string('defaultprev', 'grades', $options[0]);
} else {
$options[-1] = get_string('defaultprev', 'grades', $options[1]);
}
$mform->addElement('select', 'report_user_showrank', get_string('showrank', 'grades'), $options);
$mform->setHelpButton('report_user_showrank', array(false, get_string('showrank', 'grades'),
false, true, false, get_string('configshowrank', 'grades')));
$options = array(-1 => get_string('default', 'grades'),
0 => get_string('hide'),
1 => get_string('show'));
if (empty($CFG->grade_userreport_showrank)) {
$options[-1] = get_string('defaultprev', 'grades', $options[0]);
} else {
$options[-1] = get_string('defaultprev', 'grades', $options[1]);
}
$mform->addElement('select', 'report_user_showhiddenitems', get_string('showhiddenitems', 'grades'), $options);
$mform->setHelpButton('report_user_showhiddenitems', array(false, get_string('showhiddenitems', 'grades'),
false, true, false, get_string('configshowhiddenitems', 'grades')));
}
?>

View file

@ -25,8 +25,8 @@
/// Add settings for this module to the $settings object (it's already defined)
$settings->add(new admin_setting_configcheckbox('grade_userreport_showrank', get_string('showrank', 'grades'), get_string('configshowrank', 'grades'), 0, PARAM_INT));
$settings->add(new admin_setting_configcheckbox('grade_report_user_showrank', get_string('showrank', 'grades'), get_string('configshowrank', 'grades'), 0, PARAM_INT));
$settings->add(new admin_setting_configcheckbox('grade_userreport_showhiddenitems', get_string('showhiddenitems', 'grades'), get_string('configshowhiddenitems', 'grades'), 0, PARAM_INT));
$settings->add(new admin_setting_configcheckbox('grade_report_user_showhiddenitems', get_string('showhiddenitems', 'grades'), get_string('configshowhiddenitems', 'grades'), 0, PARAM_INT));
?>