From: skodak Date: Thu, 30 Aug 2007 08:19:44 +0000 (+0000) Subject: fixing regressions in grade export X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=c901b7a6523af3f3094964a660b8b62b12b42849;p=moodle.git fixing regressions in grade export --- diff --git a/grade/export/lib.php b/grade/export/lib.php index c159ddfa0a..077ae33cd8 100755 --- a/grade/export/lib.php +++ b/grade/export/lib.php @@ -34,7 +34,7 @@ class grade_export { var $format = ''; // export format var $id; // course id - var $itemids; // comma separated grade_item ids; + var $itemids; // array of grade_item ids; var $grades = array(); // Collect all grades in this array var $gradeshtml= array(); // Collect all grades html formatted in this array var $comments = array(); // Collect all comments for each grade @@ -53,11 +53,11 @@ class grade_export { /** * Constructor should set up all the private variables ready to be pulled * @param int $id course id - * @param string $itemids comma separated value of itemids to process for this export + * @param string $itemids array of item ids * @param boolean $export_letters Whether to export letter grade_items as literal letters, or as numerical values * @note Exporting as letters will lead to data loss if that exported set it re-imported. */ - function grade_export($id, $itemids = '', $export_letters=false, $publish=false) { + function grade_export($id, $itemids = null, $export_letters=false, $publish=false) { global $CFG, $COURSE; if ($export_letters) { @@ -118,12 +118,9 @@ class grade_export { // if grade_item ids are specified if ($itemids) { + $gradeitems = array(); foreach ($itemids as $iid) { - - if ($iid) { - $params->id = clean_param($iid, PARAM_INT); - $gradeitems[] = new grade_item($params); - } + $gradeitems[] = grade_item::fetch(array('id'=>(int)$iid, 'courseid'=>$this->id)); } } else { // else we get all items for this course @@ -132,7 +129,6 @@ class grade_export { if ($gradeitems) { foreach ($gradeitems as $gradeitem) { - // load as an array of grade_final objects if ($itemgrades = $gradeitem->get_final()) { diff --git a/grade/export/ods/index.php b/grade/export/ods/index.php index 773d74f2fe..cd0e59f21b 100755 --- a/grade/export/ods/index.php +++ b/grade/export/ods/index.php @@ -52,22 +52,20 @@ $mform = new grade_export_form(null, array('publishing' => true)); // process post information if ($data = $mform->get_data()) { + $itemids = array(); if ($data->itemids) { - $items = array(); foreach ($data->itemids as $itemid=>$selected) { if ($selected) { - $items[] = $itemid; + $itemids[] = $itemid; } } - $itemidsurl = implode(",", $items); + $itemidsurl = implode(",", $itemids); } else { //error? $itemidsurl = ''; } - // print the grades on screen for feedbacks - - $export = new grade_export($id, $data->itemids, $data->export_letters); + $export = new grade_export($id, $itemids, $data->export_letters); $export->display_grades($feedback, $data->previewrows); // this redirect should trigger a download prompt diff --git a/grade/export/txt/index.php b/grade/export/txt/index.php index a2cf474865..f3a86bdfeb 100755 --- a/grade/export/txt/index.php +++ b/grade/export/txt/index.php @@ -52,20 +52,20 @@ $mform = new grade_export_form(null, array('includeseparator'=>true, 'publishing // process post information if ($data = $mform->get_data()) { + $itemids = array(); if ($data->itemids) { - $items = array(); foreach ($data->itemids as $itemid=>$selected) { if ($selected) { - $items[] = $itemid; + $itemids[] = $itemid; } } - $itemidsurl = implode(",", $items); + $itemidsurl = implode(",", $itemids); } else { //error? $itemidsurl = ''; } - $export = new grade_export($id, $data->itemids, $data->export_letters); + $export = new grade_export($id, $itemids, $data->export_letters); $export->display_grades($feedback, $data->previewrows); // this redirect should trigger a download prompt diff --git a/grade/export/xls/index.php b/grade/export/xls/index.php index 49562007a7..8807fc811e 100755 --- a/grade/export/xls/index.php +++ b/grade/export/xls/index.php @@ -52,22 +52,20 @@ $mform = new grade_export_form(); // process post information if ($data = $mform->get_data()) { + $itemids = array(); if ($data->itemids) { - $items = array(); foreach ($data->itemids as $itemid=>$selected) { if ($selected) { - $items[] = $itemid; + $itemids[] = $itemid; } } - $itemidsurl = implode(",", $items); + $itemidsurl = implode(",", $itemids); } else { //error? $itemidsurl = ''; } - // print the grades on screen for feedbacks - - $export = new grade_export($id, $data->itemids, $data->export_letters); + $export = new grade_export($id, $itemids, $data->export_letters); $export->display_grades($feedback, $data->previewrows); // this redirect should trigger a download prompt diff --git a/grade/export/xml/index.php b/grade/export/xml/index.php index 5a0e28d764..b49f28e0bb 100755 --- a/grade/export/xml/index.php +++ b/grade/export/xml/index.php @@ -52,14 +52,14 @@ $mform = new grade_export_form(null, array('idnumberrequired'=>true, 'publishing // process post information if ($data = $mform->get_data()) { + $itemids = array(); if ($data->itemids) { - $items = array(); foreach ($data->itemids as $itemid=>$selected) { if ($selected) { - $items[] = $itemid; + $itemids[] = $itemid; } } - $itemidsurl = implode(",", $items); + $itemidsurl = implode(",", $itemids); } else { //error? $itemidsurl = ''; @@ -67,7 +67,7 @@ if ($data = $mform->get_data()) { // print the grades on screen for feedbacks - $export = new grade_export($id, $data->itemids, $data->export_letters, !empty($data->key)); + $export = new grade_export($id, $itemids, $data->export_letters, !empty($data->key)); $export->display_grades($feedback, $data->previewrows);