MDL-10490 Finished coding and testing.

This commit is contained in:
nicolasconnault 2007-08-13 08:22:56 +00:00
parent 7e8311d491
commit 86655fb693
10 changed files with 29 additions and 19 deletions

View File

@ -5,14 +5,16 @@ class grade_export_form extends moodleform {
function definition (){
global $CFG;
include_once($CFG->libdir.'/pear/HTML/QuickForm/advcheckbox.php');
$mform =& $this->_form;
$mform->addElement('header', 'general', get_string('gradeitemsinc', 'grades')); // TODO: localize
$mform->addElement('checkbox', 'export_letters', get_string('exportletters', 'grades'));
$mform =& $this->_form;
$mform->addElement('advcheckbox', 'export_letters', get_string('exportletters', 'grades'));
$mform->setDefault('export_letters', 0);
$mform->setHelpButton('export_letters', array(false, get_string('exportletters', 'grades'),
false, true, false, get_string("exportlettershelp", 'grades')));
$mform->addElement('header', 'general', get_string('gradeitemsinc', 'grades')); // TODO: localize
$id = $this->_customdata['id']; // course id
$mform->addElement('hidden', 'id', $id);
if ($grade_items = grade_item::fetch_all(array('courseid'=>$id))) {

View File

@ -69,10 +69,11 @@ class grade_export {
* @note Exporting as letters will lead to data loss if that exported set it re-imported.
*/
function grade_export($id, $itemids = '', $export_letters=false) {
global $CFG, $COURSE;
if ($export_letters) {
require_once($CFG->dirroot . '/grade/report/lib.php');
$report = new grade_report();
$report = new grade_report($COURSE->id, null, null);
$letters = $report->get_grade_letters();
}
@ -141,7 +142,6 @@ class grade_export {
if ($gradeitems) {
foreach ($gradeitems as $gradeitem) {
$grade_item_displaytype = $report->get_pref('gradedisplaytype', $gradeitem->id);
// load as an array of grade_final objects
if ($itemgrades = $gradeitem->get_final()) {
@ -165,9 +165,13 @@ class grade_export {
$studentgrade = $itemgrades[$student->id];
}
// TODO Convert final grade to letter if export option is on, and grade_item is set to letter type MDL-10490
if ($grade_item_displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER && $export_letters) {
$studentgrade->finalgrade = $studentgrade->get_letter($letters);
if ($export_letters) {
$grade_item_displaytype = $report->get_pref('gradedisplaytype', $gradeitem->id);
// TODO Convert final grade to letter if export option is on, and grade_item is set to letter type MDL-10490
if ($grade_item_displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER && !empty($studentgrade)) {
$studentgrade->finalgrade = grade_grade::get_letter($letters, $studentgrade->finalgrade,
$gradeitem->grademin, $gradeitem->grademax);
}
}
if (!empty($studentgrade->finalgrade)) {

View File

@ -29,6 +29,7 @@ require_once 'grade_export_ods.php';
$id = required_param('id', PARAM_INT); // course id
$feedback = optional_param('feedback', '', PARAM_ALPHA);
$export_letters = optional_param('export_letters', '', PARAM_INT);
$itemids = explode(",", required_param('itemids', PARAM_RAW));
if (!$course = get_record('course', 'id', $id)) {
@ -43,7 +44,7 @@ require_capability('gradeexport/ods:view', $context);
// print all the exported data here
$export = new grade_export_ods($id, $itemids);
$export = new grade_export_ods($id, $itemids, $export_letters);
$export->print_grades($feedback);
?>

View File

@ -62,7 +62,7 @@ if (($data = data_submitted()) && confirm_sesskey()) {
$export->display_grades($feedback);
// this redirect should trigger a download prompt
redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
redirect('export.php?id='.$id.'&itemids='.$itemidsurl.'&export_letters='.$data->export_letters);
exit;
}

View File

@ -27,9 +27,10 @@ require_once '../../../config.php';
require_once $CFG->dirroot.'/grade/export/lib.php';
require_once 'grade_export_txt.php';
$id = required_param('id', PARAM_INT); // course id
$feedback = optional_param('feedback', '', PARAM_ALPHA);
$itemids = explode(",", required_param('itemids', PARAM_RAW));
$id = required_param('id', PARAM_INT); // course id
$feedback = optional_param('feedback', '', PARAM_ALPHA);
$export_letters = optional_param('export_letters', '', PARAM_INT);
$itemids = explode(",", required_param('itemids', PARAM_RAW));
if (!$course = get_record('course', 'id', $id)) {
print_error('nocourseid');
@ -42,7 +43,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/txt:view', $context);
// print all the exported data here
$export = new grade_export_txt($id, $itemids);
$export = new grade_export_txt($id, $itemids, $export_letters);
$export->set_separator(optional_param('separator'));
$export->print_grades($feedback);

View File

@ -61,7 +61,7 @@ if (($data = data_submitted()) && confirm_sesskey()) {
$export->display_grades($feedback);
// this redirect should trigger a download prompt
redirect('export.php?id='.$id.'&itemids='.$itemidsurl.'&separator='.$data->separator);
redirect('export.php?id='.$id.'&itemids='.$itemidsurl.'&separator='.$data->separator.'&export_letters='.$data->export_letters);
exit;
}

View File

@ -29,6 +29,7 @@ require_once 'grade_export_xls.php';
$id = required_param('id', PARAM_INT); // course id
$feedback = optional_param('feedback', '', PARAM_ALPHA);
$export_letters = optional_param('export_letters', '', PARAM_INT);
$itemids = explode(",", required_param('itemids', PARAM_RAW));
if (!$course = get_record('course', 'id', $id)) {
@ -42,7 +43,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/xls:view', $context);
// print all the exported data here
$export = new grade_export_xls($id, $itemids);
$export = new grade_export_xls($id, $itemids, $export_letters);
$export->print_grades($feedback);
?>

View File

@ -62,7 +62,7 @@ if (($data = data_submitted()) && confirm_sesskey()) {
$export->display_grades($feedback);
// this redirect should trigger a download prompt
redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
redirect('export.php?id='.$id.'&itemids='.$itemidsurl.'&export_letters='.$data->export_letters);
exit;
}

View File

@ -29,6 +29,7 @@ require_once 'grade_export_xml.php';
$id = required_param('id', PARAM_INT); // course id
$feedback = optional_param('feedback', '', PARAM_ALPHA);
$export_letters = optional_param('export_letters', '', PARAM_INT);
$itemids = explode(",", required_param('itemids', PARAM_RAW));
if (!$course = get_record('course', 'id', $id)) {
@ -42,7 +43,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/xml:view', $context);
// print all the exported data here
$export = new grade_export_xml($id, $itemids);
$export = new grade_export_xml($id, $itemids, $export_letters);
$export->print_grades($feedback);
?>

View File

@ -62,7 +62,7 @@ if (($data = data_submitted()) && confirm_sesskey()) {
$export->display_grades($feedback);
// this redirect should trigger a download prompt
redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
redirect('export.php?id='.$id.'&itemids='.$itemidsurl.'&export_letters='.$data->export_letters);
exit;
}