]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10490 Finished coding and testing.
authornicolasconnault <nicolasconnault>
Mon, 13 Aug 2007 08:22:56 +0000 (08:22 +0000)
committernicolasconnault <nicolasconnault>
Mon, 13 Aug 2007 08:22:56 +0000 (08:22 +0000)
grade/export/grade_export_form.php
grade/export/lib.php
grade/export/ods/export.php
grade/export/ods/index.php
grade/export/txt/export.php
grade/export/txt/index.php
grade/export/xls/export.php
grade/export/xls/index.php
grade/export/xml/export.php
grade/export/xml/index.php

index 507ce587188894d02c46e7ff68cd89e79e62a9d8..1c996b2add4e3e9eb548ada20bafc5f3b076fef1 100755 (executable)
@@ -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->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))) {
index 0081ef8a81d0c8842e90fa5d599a2bea4724662a..7d59b82ffff14cc690d9bdcdd8374358922051d2 100755 (executable)
@@ -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)) {
index 3e42622d11e7116907860b33e136a1c8a2465c26..802fab8dc0eebab59ba373c301931d60fc5efe8d 100755 (executable)
@@ -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);
 
 ?>
index 2c366963b430805d568e2b65bf4e48a0ed4ca81f..d8e8ca37e9f06fe592bf67103e4ed7c1322d18a3 100755 (executable)
@@ -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.'&amp;itemids='.$itemidsurl);
+    redirect('export.php?id='.$id.'&amp;itemids='.$itemidsurl.'&amp;export_letters='.$data->export_letters);
     exit;
 }
 
index d46f27d5722a32bf261ef59e7774819d0a91af7f..21a97baa94a4445d54760f4d1099ca74da254d89 100755 (executable)
@@ -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);
 
index 40e2e14d9db37da385c06583f9b64cc15346b662..c86a88fd4b2a42cc3b3142727efe4dc76db2265e 100755 (executable)
@@ -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.'&amp;itemids='.$itemidsurl.'&amp;separator='.$data->separator);
+    redirect('export.php?id='.$id.'&amp;itemids='.$itemidsurl.'&amp;separator='.$data->separator.'&amp;export_letters='.$data->export_letters);
     exit;
 }
 
index abd0c36d72fe868ae4ddaf39d889edbf5351be37..80adbe41a5e9b7617b380f03b3d21f41d155445d 100755 (executable)
@@ -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);
 
 ?>
index 665237d78e98ef367883bccd2e3088ed34905793..940fcd0eabccec76599c8c15adb27523ffc47b4c 100755 (executable)
@@ -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.'&amp;itemids='.$itemidsurl);
+    redirect('export.php?id='.$id.'&amp;itemids='.$itemidsurl.'&amp;export_letters='.$data->export_letters);
     exit;
 }
 
index 540fae2b2fb41a9ee1044c7b1aceca0997ec4ccc..1a71534588a94a86acd00b549e2530a32a05b20f 100755 (executable)
@@ -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);
 
 ?>
index 9eb1917e628b0990d326ef55e9bdeda57bd12c6f..49140914513630043e2fcc6404dcd8c1f55619bb 100755 (executable)
@@ -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.'&amp;itemids='.$itemidsurl);
+    redirect('export.php?id='.$id.'&amp;itemids='.$itemidsurl.'&amp;export_letters='.$data->export_letters);
     exit;
 }