]> git.mjollnir.org Git - moodle.git/commitdiff
fixing regressions in grade export
authorskodak <skodak>
Thu, 30 Aug 2007 08:19:44 +0000 (08:19 +0000)
committerskodak <skodak>
Thu, 30 Aug 2007 08:19:44 +0000 (08:19 +0000)
grade/export/lib.php
grade/export/ods/index.php
grade/export/txt/index.php
grade/export/xls/index.php
grade/export/xml/index.php

index c159ddfa0a24fe7916ce5625c7626a68755a6ffe..077ae33cd8b5a09184f561e0cb542ddab60e10c9 100755 (executable)
@@ -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()) {
 
index 773d74f2fe9a0d9042dcc3cff0ca0d529e7219b4..cd0e59f21b25bc235979f6012dc345b470e5b4db 100755 (executable)
@@ -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
index a2cf474865c0e83c4315ae0eec571ed01841e533..f3a86bdfebcf012a66b9a75c10d7ba286b1db222 100755 (executable)
@@ -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
index 49562007a722b29adf7a36aa6a015fdec8d2deaf..8807fc811ec9fa2da5f3eae611346f2ea27e01ec 100755 (executable)
@@ -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
index 5a0e28d7647fec5cfb7b9dd8769a2483f41d4437..b49f28e0bb0e56993d69c52049a7bc8fe869e682 100755 (executable)
@@ -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);