]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-14517 Cannot export analysis to excel by course
authoragrabs <agrabs>
Fri, 18 Jul 2008 14:53:28 +0000 (14:53 +0000)
committeragrabs <agrabs>
Fri, 18 Jul 2008 14:53:28 +0000 (14:53 +0000)
mod/feedback/analysis_course.php
mod/feedback/analysis_to_excel.php
mod/feedback/lib.php

index 8901d48373ef62fe30eb84d42c6f8c1f01dd3f44..ae02912cf04368063ff30e57ad380c6186d6a349 100644 (file)
@@ -72,7 +72,7 @@
         //button "export to excel"
         echo '<div align="center">';
         $export_button_link = 'analysis_to_excel.php';
-        $export_button_options = array('sesskey'=>$USER->sesskey, 'id'=>$id);
+        $export_button_options = array('sesskey'=>$USER->sesskey, 'id'=>$id, 'coursefilter'=>$coursefilter);
         $export_button_label = get_string('export_to_excel', 'feedback');
         print_single_button($export_button_link, $export_button_options, $export_button_label, 'post');
         echo '</div>';
index 73c526d4e3e5aaba78242c2224974f968676d9e3..14d374c189d6d61834f0e9fb82fce7d268a6c387 100644 (file)
@@ -13,6 +13,7 @@
     require_once('easy_excel.php');
  
     $id = required_param('id', PARAM_INT);  //the POST dominated the GET
+    $coursefilter = optional_param('coursefilter', '0', PARAM_INT);    
     
     $formdata = data_submitted();
     
     //print the analysed sheet
     ////////////////////////////////////////////////////////////////////////
     //get the completeds
-    $completedscount = feedback_get_completeds_group_count($feedback, $mygroupid);
+    $completedscount = feedback_get_completeds_group_count($feedback, $mygroupid, $coursefilter);
     if($completedscount > 0){
         //write the count of completeds
         $rowOffset1++;
         $itemclass = 'feedback_item_'.$item->typ;
         //get the instance of the item-class
         $itemobj = new $itemclass();
-        $rowOffset1 = $itemobj->excelprint_item($worksheet1, $rowOffset1, $item, $mygroupid);
+        $rowOffset1 = $itemobj->excelprint_item($worksheet1, $rowOffset1, $item, $mygroupid, $coursefilter);
     }
 
     ////////////////////////////////////////////////////////////////////////
     ////////////////////////////////////////////////////////////////////////
     //get the completeds
     
-    $completeds = feedback_get_completeds_group($feedback, $mygroupid);
+    $completeds = feedback_get_completeds_group($feedback, $mygroupid, $coursefilter);
     //important: for each completed you have to print each item, even if it is not filled out!!!
     //therefor for each completed we have to iterate over all items of the feedback
     //this is done by feedback_excelprint_detailed_items
index 3a3e19051769bb60334e0a44efc85549b7f2ca56..75c8465ceed9bd4bbeedc37753d0b6aaaaab36b5 100644 (file)
@@ -1496,7 +1496,7 @@ function feedback_get_current_completed($feedbackid, $tmp = false, $courseid = f
  *  @param int $groupid
  *  @return mixed array of found completeds otherwise false
  */
-function feedback_get_completeds_group($feedback, $groupid = false) {
+function feedback_get_completeds_group($feedback, $groupid = false, $courseid = false) {
     global $CFG, $DB;
 
     if (intval($groupid) > 0){
@@ -1511,10 +1511,24 @@ function feedback_get_completeds_group($feedback, $groupid = false) {
             return false;
         }
     } else {
-        if ($values = $DB->get_records('feedback_completed', array('feedback'=>$feedback->id))) {
-            return $values;
-        } else {
-            return false;
+        if($courseid) {
+            $query = "SELECT DISTINCT fbc.*
+                        FROM {feedback_completed} AS fbc, {feedback_value} AS fbv
+                        WHERE fbc.id = fbv.completed
+                            AND fbc.feedback = ?
+                            AND fbv.course_id = ?
+                        ORDER BY random_response";
+            if ($values = $DB->get_records_sql($query, array($feedback->id, $courseid))) {
+                return $values;
+            } else {
+                return false;
+            }
+        }else {
+            if ($values = $DB->get_records('feedback_completed', array('feedback'=>$feedback->id))) {
+                return $values;
+            } else {
+                return false;
+            }
         }
     }
 }