diff --git a/grade/export/lib.php b/grade/export/lib.php index 35ec41d3229..11fe75c514e 100644 --- a/grade/export/lib.php +++ b/grade/export/lib.php @@ -182,6 +182,13 @@ abstract class grade_export { $this->previewrows = $formdata->previewrows; } + if (isset($formdata->display)) { + $this->displaytype = $formdata->display; + } + + if (isset($formdata->updatedgradesonly)) { + $this->updatedgradesonly = $formdata->updatedgradesonly; + } } /** diff --git a/grade/export/ods/grade_export_ods.php b/grade/export/ods/grade_export_ods.php index 1dd953f0335..ec81be8180f 100644 --- a/grade/export/ods/grade_export_ods.php +++ b/grade/export/ods/grade_export_ods.php @@ -21,6 +21,19 @@ class grade_export_ods extends grade_export { public $plugin = 'ods'; + /** + * Constructor should set up all the private variables ready to be pulled + * @param object $course + * @param int $groupid id of selected group, 0 means all + * @param stdClass $formdata The validated data from the grade export form. + */ + public function __construct($course, $groupid, $formdata) { + parent::__construct($course, $groupid, $formdata); + + // Overrides. + $this->usercustomfields = true; + } + /** * To be implemented by child classes */ diff --git a/grade/export/txt/grade_export_txt.php b/grade/export/txt/grade_export_txt.php index 9a0b8add699..0a379c231ee 100644 --- a/grade/export/txt/grade_export_txt.php +++ b/grade/export/txt/grade_export_txt.php @@ -33,6 +33,9 @@ class grade_export_txt extends grade_export { public function __construct($course, $groupid, $formdata) { parent::__construct($course, $groupid, $formdata); $this->separator = $formdata->separator; + + // Overrides. + $this->usercustomfields = true; } public function get_export_params() { diff --git a/grade/export/txt/tests/behat/export.feature b/grade/export/txt/tests/behat/export.feature index c47dbe9bd46..db0ba72ae52 100644 --- a/grade/export/txt/tests/behat/export.feature +++ b/grade/export/txt/tests/behat/export.feature @@ -16,23 +16,9 @@ Feature: I need to export grades as text | user | course | role | | teacher1 | C1 | editingteacher | | student1 | C1 | student | - And I log in as "teacher1" - And I follow "Course 1" - And I turn editing mode on - And I add a "Assignment" to section "1" and I fill the form with: - | Assignment name | Test assignment name | - | Description | Submit your online text | - | assignsubmission_onlinetext_enabled | 1 | - And I log out - And I log in as "student1" - And I follow "Course 1" - And I follow "Test assignment name" - When I press "Add submission" - And I set the following fields to these values: - | Online text | This is a submission | - And I press "Save changes" - Then I should see "Submitted for grading" - And I log out + And the following "activities" exist: + | activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | + | assign | C1 | a1 | Test assignment name | Submit your online text | 1 | And I log in as "teacher1" And I follow "Course 1" And I follow "Grades" @@ -51,3 +37,13 @@ Feature: I need to export grades as text And I should see "80.0" And I should not see "Course total" And I should not see "80.00" + + @javascript + Scenario: Export grades as text using percentages + When I set the field "Grade report" to "Plain text file" + And I expand all fieldsets + And I set the field "Grade export display type" to "Percent" + And I click on "Course total" "checkbox" + And I press "Download" + Then I should see "Student,1" + And I should see "80.00 %" diff --git a/grade/export/xls/grade_export_xls.php b/grade/export/xls/grade_export_xls.php index f3fa6f6cc6c..a3c75bd9a8f 100644 --- a/grade/export/xls/grade_export_xls.php +++ b/grade/export/xls/grade_export_xls.php @@ -21,6 +21,19 @@ class grade_export_xls extends grade_export { public $plugin = 'xls'; + /** + * Constructor should set up all the private variables ready to be pulled + * @param object $course + * @param int $groupid id of selected group, 0 means all + * @param stdClass $formdata The validated data from the grade export form. + */ + public function __construct($course, $groupid, $formdata) { + parent::__construct($course, $groupid, $formdata); + + // Overrides. + $this->usercustomfields = true; + } + /** * To be implemented by child classes */