]> git.mjollnir.org Git - moodle.git/commitdiff
adding support for specific item ids and text feedbacks
authortoyomoyo <toyomoyo>
Wed, 9 May 2007 08:45:25 +0000 (08:45 +0000)
committertoyomoyo <toyomoyo>
Wed, 9 May 2007 08:45:25 +0000 (08:45 +0000)
grade/export/lib.php

index 3ca3a415bcc66c30a6719ddb744b971add6c1c28..7ad1efd0310f2d23a37b54ea7e49d5fbe9c8ae96 100755 (executable)
@@ -27,8 +27,10 @@ class grade_export {
     
     var $format = ''; // export format
     var $id; // course id
+    var $itemids; // comma separated 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
     var $totals = array();    // Collect all totals in this array
     var $columns = array();     // Accumulate column names in this array.
     var $columnhtml = array();  // Accumulate column html in this array. 
@@ -40,11 +42,14 @@ class grade_export {
     
     /**
      * Constructor should set up all the private variables ready to be pulled
+     * @input int id - course id
+     * @input string itemids - comma separated value of itemids to process for this export
      */
-    function grade_export($id) {
+    function grade_export($id, $itemids = '') {
         
         $this->strgrades = get_string("grades");
         $this->strgrade = get_string("grade");
+        $this->itemids = $itemids;
         
         $strmax = get_string("maximumshort");  
         
@@ -83,10 +88,23 @@ class grade_export {
                 $this->grades[$student->id] = array();    // Collect all grades in this array
                 $this->gradeshtml[$student->id] = array(); // Collect all grades html formatted in this array
                 $this->totals[$student->id] = array();    // Collect all totals in this array
+                $this->comments[$student->id] = array(); // Collect all comments in tihs array
             }
         }
         
-        if ($gradeitems = grade_get_items($this->id)) {
+        // if grade_item ids are specified
+        if ($iids = explode(",", $itemids)) {
+            foreach ($iids as $iid) {
+                $params->id = $iid;
+                $gradeitems[] = new grade_item($params);               
+            }  
+        } else {
+            // else we get all items for this course
+            $gradeitems = grade_get_items($this->id);
+        }
+        
+        
+        if ($gradeitems) {
             
             foreach ($gradeitems as $gradeitem) {
 
@@ -105,27 +123,32 @@ class grade_export {
                         foreach ($students as $student) {
                       
                             // add support for comment here MDL-9634
-                                        
-                            if (!empty($itemgrades[$student->id]->gradevalue)) {
-                                $this->grades[$student->id][] = $currentstudentgrade = $itemgrades[$student->id]->gradevalue;
+                            $studentgrade = $itemgrades[$student->id];            
+                            
+                            if (!empty($studentgrade->gradevalue)) {
+                                $this->grades[$student->id][] = $currentstudentgrade = $studentgrade->gradevalue;
                             } else {
                                 $this->grades[$student->id][] = $currentstudentgrade = "";
                                 $this->gradeshtml[$student->id][] = "";
                             }
-                            if (!empty($modgrades->maxgrade)) {
+                            if (!empty($maxgrade)) {
                                 $this->totals[$student->id] = (float)($totals[$student->id]) + (float)($currentstudentgrade);
                             } else {
                                 $this->totals[$student->id] = (float)($totals[$student->id]) + 0;
-                            }                  
+                            }
+                            
+                            // load comments here
+                            $studentgrade->load_text();
+                            // get the actual comment
+                            $comment = $studentgrade->grade_grades_text->feedback;
+                            
+                            if (!empty($comment)) {
+                                $this->comments[$student->id][] = $comment;
+                            } else {
+                                $this->comments[$student->id][] = '';  
+                            }
                         }
                     }
-                /* we might be able to loop by gradeitems instead of students
-                foreach ($itemgrades as $itemgrade) {
-                    $grades[$itemgrade->userid][] = $itemgrade->gradevalue;
-                    $totals[$itemgrade->userid] = (float)($totals[$itemgrade->userid]) + 
-                                                  (float)($itemgrade->gradevalue);
-                } 
-                */
                 }
             }
         }