class edit_item_form extends moodleform {
function definition() {
- global $COURSE;
+ global $COURSE, $CFG;
$mform =& $this->_form;
/// user preferences
$mform->addElement('header', 'general', get_string('userpreferences', 'grades'));
-
- $mform->addElement('select', 'pref_gradedisplaytype', get_string('gradedisplaytype', 'grades'),
- array(GRADE_REPORT_PREFERENCE_DEFAULT => get_string('default', 'grades'),
+ $options = array(GRADE_REPORT_PREFERENCE_DEFAULT => get_string('default', 'grades'),
GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades')));
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'));
+ $label = get_string('gradedisplaytype', 'grades') . ' (' . get_string('default', 'grades')
+ . ': ' . $options[$CFG->grade_report_gradedisplaytype] . ')';
+ $mform->addElement('select', 'pref_gradedisplaytype', $label, $options);
$mform->setHelpButton('pref_gradedisplaytype', array(false, get_string('gradedisplaytype', 'grades'),
false, true, false, get_string("config_gradedisplaytype", 'grades')));
$mform->setDefault('pref_gradedisplaytype', GRADE_REPORT_PREFERENCE_DEFAULT);
- $mform->addElement('select', 'pref_decimalpoints', get_string('decimalpoints', 'grades'),
- array(GRADE_REPORT_PREFERENCE_DEFAULT => get_string('default', 'grades'), 0, 1, 2, 3, 4, 5));
+ $options = array(GRADE_REPORT_PREFERENCE_DEFAULT => get_string('default', 'grades'), 0, 1, 2, 3, 4, 5);
+ $label = get_string('decimalpoints', 'grades') . ' (' . get_string('default', 'grades')
+ . ': ' . $options[$CFG->grade_report_decimalpoints] . ')';
+ $mform->addElement('select', 'pref_decimalpoints', $label, $options);
$mform->setHelpButton('pref_decimalpoints', array(false, get_string('decimalpoints', 'grades'),
false, true, false, get_string("config_decimalpoints", 'grades')));
$mform->setDefault('pref_decimalpoints', GRADE_REPORT_PREFERENCE_DEFAULT);
$gradedisplaytype = $this->get_pref('gradedisplaytype', $item->id);
$percentsign = '';
+ $grademin = $this->finalgrades[$userid][$item->id]->grademin;
+ $grademax = $this->finalgrades[$userid][$item->id]->grademax;
if ($gradedisplaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE) {
+ if (!is_null($gradeval)) {
+ $gradeval = grade_grades::standardise_score($gradeval, $grademin, $grademax, 0, 100);
+ }
$percentsign = '%';
}
- // Convert the grade to percentage if needed
- if ($gradedisplaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE && !is_null($gradeval)) {
- $grademin = $this->finalgrades[$userid][$item->id]->grademin;
- $grademax = $this->finalgrades[$userid][$item->id]->grademax;
- $gradeval = grade_grades::standardise_score($gradeval, $grademin, $grademax, 0, 100);
- }
-
// If feedback present, surround grade with feedback tooltip
if (!empty($grade->feedback)) {
if ($grade->feedbackformat == 1) {
$studentshtml .= '<span onmouseover="' . $overlib . '" onmouseout="return nd();">';
}
- // finalgrades[$userid][$itemid] could be null because of the outer join
- // in this case it's different than a 0
- if ($item->scaleid && !empty($scales_array[$item->scaleid]) && $gradedisplaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL) {
+ if ($gradedisplaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER) {
+ $letters = grade_report::get_grade_letters();
+ if (!is_null($gradeval)) {
+ $studentshtml .= grade_grades::get_letter($letters, $gradeval, $grademin, $grademax);
+ }
+ } else if ($item->scaleid && !empty($scales_array[$item->scaleid])
+ && $gradedisplaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL) {
$scale = $scales_array[$item->scaleid];
$scales = explode(",", $scale->scale);
if ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE) {
$gradeval = grade_grades::standardise_score($rawvalue, $item->grademin, $item->grademax, 0, 100);
$gradehtml = round($gradeval, $decimalpoints) . '%';
+ } elseif ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER) {
+ $letters = grade_report::get_grade_letters();
+ $gradehtml = grade_grades::get_letter($letters, $gradeval, $item->grademin, $item->grademax);
}
+
$groupavghtml .= '<td>'.$gradehtml.'</td>';
}
}
if ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE) {
$gradeval = grade_grades::standardise_score($rawvalue, $item->grademin, $item->grademax, 0, 100);
$gradehtml = round($gradeval, $decimalpoints) . '%';
+ } elseif ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER) {
+ $letters = grade_report::get_grade_letters();
+ $gradehtml = grade_grades::get_letter($letters, $gradeval, $item->grademin, $item->grademax);
}
$gradeavghtml .= '<td>'.$gradehtml.'</td>';
} elseif ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE) {
$grademin = 0;
$grademax = 100;
+ } elseif ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER) {
+ $letters = grade_report::get_grade_letters();
+ $grademin = end($letters);
+ $grademax = reset($letters);
}
$scalehtml .= '<th class="range">'. $grademin.'-'. $grademax.'</th>';
set_user_preference('calendar_persistflt', intval($value));
break;
default:
- set_user_preference($preference, $value);
+ if ($value == GRADE_REPORT_PREFERENCE_DEFAULT) {
+ unset_user_preference($preference);
+ } else {
+ set_user_preference($preference, $value);
+ }
break;
}
}
$systemcontext = get_context_instance(CONTEXT_SYSTEM);
+ $strgradeboundary = get_string('gradeboundary', 'grades');
+ $strconfiggradeboundary = get_string('configgradeboundary', 'grades');
+ $strgradeletter = get_string('gradeletter', 'grades');
+ $strconfiggradeletter = get_string('configgradeletter', 'grades');
+ $strdefault = get_string('default', 'grades');
+ $strinherit = get_string('inherit', 'grades');
+ $stryes = get_string('yes');
+ $strno = get_string('no');
+
+ $percentages = array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_PREFERENCE_UNUSED => get_string('unused', 'grades'));
+ for ($i=100; $i > -1; $i--) {
+ $percentages[$i] = "$i%";
+ }
+
+ $checkbox_default = array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault, 0 => $strno, 1 => $stryes);
+
/// form definition with preferences defaults
//--------------------------------------------------------------------------------
- $preferences = array('bulkcheckboxes' => 'advcheckbox',
- 'enableajax' => 'advcheckbox',
- 'showcalculations' => 'advcheckbox',
- 'showeyecons' => 'advcheckbox',
- 'showaverages' => 'advcheckbox',
- 'showgroups' => 'advcheckbox',
- 'showlocks' => 'advcheckbox',
- 'showranges' => 'advcheckbox',
- 'quickgrading' => 'advcheckbox',
- 'quickfeedback' => 'advcheckbox',
- 'showuserimage' => 'advcheckbox',
- 'meanselection' => array(GRADE_AGGREGATE_MEAN_ALL => get_string('meanall', 'grades'),
+ $preferences = array('bulkcheckboxes' => $checkbox_default,
+ 'enableajax' => $checkbox_default,
+ 'showcalculations' => $checkbox_default,
+ 'showeyecons' => $checkbox_default,
+ 'showaverages' => $checkbox_default,
+ 'showgroups' => $checkbox_default,
+ 'showlocks' => $checkbox_default,
+ 'showranges' => $checkbox_default,
+ 'quickgrading' => $checkbox_default,
+ 'quickfeedback' => $checkbox_default,
+ 'showuserimage' => $checkbox_default,
+ 'meanselection' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_AGGREGATE_MEAN_ALL => get_string('meanall', 'grades'),
GRADE_AGGREGATE_MEAN_GRADED => get_string('meangraded', 'grades')),
- 'aggregationposition' => array(GRADE_REPORT_AGGREGATION_POSITION_LEFT => get_string('left', 'grades'),
+ 'aggregationposition' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_AGGREGATION_POSITION_LEFT => get_string('left', 'grades'),
GRADE_REPORT_AGGREGATION_POSITION_RIGHT => get_string('right', 'grades')),
- 'aggregationview' => array(GRADE_REPORT_AGGREGATION_VIEW_FULL => get_string('full', 'grades'),
+ 'aggregationview' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_AGGREGATION_VIEW_FULL => get_string('full', 'grades'),
GRADE_REPORT_AGGREGATION_VIEW_COMPACT => get_string('compact', 'grades')),
- 'gradedisplaytype' => array(GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades')),
- 'averagesdisplaytype' => array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
+ 'gradedisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')),
+ 'averagesdisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades')),
- 'rangesdisplaytype' => array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')),
+ 'rangesdisplaytype' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades')),
- 'averagesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades')),
+ 'averagesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
+ 0, 1, 2, 3, 4, 5),
+ 'rangesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
+ GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
0, 1, 2, 3, 4, 5),
- 'rangesdecimalpoints' => array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
+ 'decimalpoints' => array(GRADE_REPORT_PREFERENCE_DEFAULT => $strdefault,
0, 1, 2, 3, 4, 5),
- 'decimalpoints' => array(0, 1, 2, 3, 4, 5),
'studentsperpage' => 'text');
+ for ($i = 1; $i <= 10; $i++) {
+ $preferences['gradeboundary' . $i] = $percentages;
+ $preferences['gradeletter' . $i] = 'text';
+ }
+
foreach ($preferences as $pref => $type) {
+ if (preg_match('/([^[0-9]+)([0-9]+)/', $pref, $matches)) {
+ $lang_string = $matches[1];
+ $number = ' ' . $matches[2];
+ } else {
+ $lang_string = $pref;
+ $number = null;
+ }
+
$full_pref = 'grade_report_' . $pref;
+
$pref_value = get_user_preferences($full_pref, $CFG->$full_pref);
$options = null;
if (is_array($type)) {
$options = $type;
$type = 'select';
+ $default = $options[$CFG->$full_pref];
+ } else {
+ $default = $CFG->$full_pref;
}
+ $default_label = get_string($lang_string, 'grades') . $number . ' (' . $strdefault . ': ' . $default . ')';
- $mform->addElement($type, $full_pref, get_string($pref, 'grades'), $options);
- $mform->setHelpButton($full_pref, array(false, get_string($pref, 'grades'), false, true, false, get_string("config$pref", 'grades')));
+ $mform->addElement($type, $full_pref, $default_label, $options);
+ $mform->setHelpButton($full_pref, array(false, get_string($lang_string, 'grades'), false, true, false,
+ get_string("config$lang_string", 'grades')));
$mform->setDefault($full_pref, $pref_value);
$mform->setType($full_pref, PARAM_ALPHANUM);
}
<?php // $Id$
require_once($CFG->libdir.'/gradelib.php');
+$strgradeboundary = get_string('gradeboundary', 'grades');
+$strconfiggradeboundary = get_string('configgradeboundary', 'grades');
+$strgradeletter = get_string('gradeletter', 'grades');
+$strconfiggradeletter = get_string('configgradeletter', 'grades');
+$strinherit = get_string('inherit', 'grades');
+$strpercentage = get_string('percentage', 'grades');
+$strreal = get_string('real', 'grades');
+$strletter = get_string('letter', 'grades');
/// Add settings for this module to the $settings object (it's already defined)
$settings->add(new admin_setting_configselect('grade_report_aggregationposition', get_string('aggregationposition', 'grades'),
$settings->add(new admin_setting_configselect('grade_report_gradedisplaytype', get_string('gradedisplaytype', 'grades'),
get_string('configgradedisplaytype', 'grades'), false,
- array(GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'))));
+ array(GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => $strreal,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => $strpercentage,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => $strletter)));
$settings->add(new admin_setting_configselect('grade_report_rangesdisplaytype', get_string('rangesdisplaytype', 'grades'),
get_string('configrangesdisplaytype', 'grades'), false,
- array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'))));
+ array(GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => $strreal,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => $strpercentage,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => $strletter)));
$settings->add(new admin_setting_configselect('grade_report_averagesdisplaytype', get_string('averagesdisplaytype', 'grades'),
get_string('configaveragesdisplaytype', 'grades'), false,
- array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'))));
+ array(GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_REAL => $strreal,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE => $strpercentage,
+ GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER => $strletter)));
$settings->add(new admin_setting_configselect('grade_report_meanselection', get_string('meanselection', 'grades'),
get_string('configmeanselection', 'grades'), false,
'5' => '5')));
$settings->add(new admin_setting_configselect('grade_report_averagesdecimalpoints', get_string('averagesdecimalpoints', 'grades'),
get_string('configaveragesdecimalpoints', 'grades'), 2,
- array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
+ array(GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
'0' => '0',
'1' => '1',
'2' => '2',
'5' => '5')));
$settings->add(new admin_setting_configselect('grade_report_rangesdecimalpoints', get_string('rangesdecimalpoints', 'grades'),
get_string('configrangesdecimalpoints', 'grades'), 2,
- array(GRADE_REPORT_PREFERENCE_INHERIT => get_string('inherit', 'grades'),
+ array(GRADE_REPORT_PREFERENCE_INHERIT => $strinherit,
'0' => '0',
'1' => '1',
'2' => '2',
'4' => '4',
'5' => '5')));
+$percentages = array(GRADE_REPORT_PREFERENCE_UNUSED => get_string('unused', 'grades'));
+for ($i=100; $i > -1; $i--) {
+ $percentages[$i] = "$i%";
+}
+
+for ($i = 1; $i <= 10; $i++) {
+ $default = abs(($i-10)*10);
+ $settings->add(new admin_setting_configselect('grade_report_gradeboundary'.$i, $strgradeboundary . " $i",
+ $strconfiggradeboundary, $default, $percentages));
+
+ $settings->add(new admin_setting_configtext('grade_report_gradeletter'.$i, $strgradeletter . " $i",
+ $strconfiggradeletter, ''));
+}
?>
$percentage = $offset_value * $factor;
return $percentage;
}
+
+ /**
+ * Fetches and returns an array of grade letters indexed by their grade boundaries, as stored in preferences.
+ * @return array
+ */
+ function get_grade_letters() {
+ $letters = array();
+ for ($i = 1; $i <= 10; $i++) {
+ $boundary = grade_report::get_pref('gradeboundary' . $i);
+ $letter = grade_report::get_pref('gradeletter' . $i);
+ if (!is_null($boundary) && $boundary != -1 && !empty($letter)) {
+ $letters[$boundary] = $letter;
+ }
+ }
+ return $letters;
+ }
}
?>
$string['configbulkcheckboxes'] = 'Checkboxes near each grade for Bulk grade operations.';
$string['configdecimalpoints'] = 'The number of decimal points to display for each grade. This can be overriden per grading item.';
$string['configenableajax'] = 'Adds a layer of AJAX functionality to the grader report, simplifying and speeding up common operations. Depends on Javascript being switched on at the user\'s browser level.';
+$string['configgradeboundary'] = 'A percentage boundary over which grades will be assigned a grade letter (if the Letter grade display type is used). ';
$string['configgradedisplaytype'] = 'Grades can be shown as real grades, as percentages (in reference to the minimum and maximum grades) or as letters (A, B, C etc..)';
+$string['configgradeletter'] = 'A letter or other symbol used to represent a range of grades.';
$string['configmeanselection'] = 'Select which types of grades will be included in the column averages. Cells with no grade can be ignored, or counted as 0 (default setting).';
$string['configquickfeedback'] = 'Quick Feedback adds a text input element in each grade cell on the grader report, allowing you to edit many grades at once. You can then click the Update button to perform all these changes at once, instead of one at a time.';
$string['configquickgrading'] = 'Quick Grading adds a text input element in each grade cell on the grader report, allowing you to edit the feedback for many grades at once. You can then click the Update button to perform all these changes at once, instead of one at a time.';
$string['grade'] = 'Grade';
$string['gradebook'] = 'Gradebook';
$string['gradebookhiddenerror'] = 'The gradebook is currently set to hide everything from students.';
+$string['gradeboundary'] = 'Letter grade boundary';
$string['gradecategoryhelp'] = 'Grade Category Help';
$string['gradedisplaytype'] = 'Grade display type';
$string['gradeexceptions'] = 'Grade Exceptions';
$string['left'] = 'Left';
$string['lettergrade'] = 'Letter Grade';
$string['lettergradenonnumber'] = 'Low and/or High grade were non-numeric for';
+$string['letter'] = 'Letter';
$string['letters'] = 'Letters';
$string['lock'] = 'Lock';
$string['locked'] = 'Locked';
$string['typevalue'] = 'Value';
$string['uncategorised'] = 'Uncategorised';
$string['unlock'] = 'Unlock';
+$string['unused'] = 'Unused';
$string['uploadgrades'] = 'Upload grades';
$string['useadvanced'] = 'Use Advanced Features';
$string['usenooutcome'] = 'Use no outcome';
$standardised_value = $factor * $diff + $target_min;
return $standardised_value;
}
+
+ /**
+ * Returns the grade letter this grade falls under, as they are set up in the given array.
+ * @param array $letters An array of grade boundaries with associated letters
+ * @param float $gradevalue The value to convert. If not given, will use instantiated object
+ * @param float $grademin If not given, will look up the grade_item's grademin
+ * @param float $grademax If not given, will look up the grade_item's grademax
+ * @return string Grade letter
+ */
+ function get_letter($letters, $gradevalue=null, $grademin=null, $grademax=null) {
+ if (is_null($grademin) || is_null($grademax)) {
+ if (!isset($this)) {
+ debugging("Tried to call grade_grades::get_letter statically without giving an explicit grademin or grademax!");
+ return false;
+ }
+ $this->load_grade_item();
+ $grademin = $this->grade_item->grademin;
+ $grademax = $this->grade_item->grademax;
+ }
+
+ if (is_null($gradevalue)) {
+ if (!isset($this)) {
+ debugging("Tried to call grade_grades::get_letter statically without giving an explicit gradevalue!");
+ return false;
+ }
+ $gradevalue = $this->finalgrade;
+ }
+ // Standardise grade first
+ $grade = grade_grades::standardise_score($gradevalue, $grademin, $grademax, 0, 100);
+
+ // Sort the letters by descending boundaries (100-0)
+ krsort($letters);
+ foreach ($letters as $boundary => $letter) {
+ if ($grade >= $boundary) {
+ return $letter;
+ }
+ }
+ return '-';
+ }
+
}
?>
define('GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER', 2);
define('GRADE_REPORT_PREFERENCE_DEFAULT', 'default');
define('GRADE_REPORT_PREFERENCE_INHERIT', 'inherit');
+define('GRADE_REPORT_PREFERENCE_UNUSED', -1);
require_once($CFG->libdir . '/grade/grade_category.php');
require_once($CFG->libdir . '/grade/grade_item.php');
}
}
+/**
+ * Builds an array of percentages indexed by integers for the purpose of building a select drop-down element.
+ * @param int $steps The value between each level.
+ * @param string $order 'asc' for 0-100 and 'desc' for 100-0
+ * @param int $lowest The lowest value to include
+ * @param int $highest The highest value to include
+ */
+function build_percentages_array($steps=1, $order='desc', $lowest=0, $highest=100) {
+ // TODO reject or implement
+}
?>
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
- $version = 2007071703; // YYYYMMDD = date
+ $version = 2007071801; // YYYYMMDD = date
// XY = increments within a single day
$release = '1.9 dev'; // Human-friendly version name