From b805ffbd9ba766be2d56d7bade17664a8509c7d2 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Fri, 27 Feb 2015 11:49:43 +0800 Subject: [PATCH] Testing MDL-47911 --- admin/tool/generator/classes/course_backend.php | 77 +++++++++++++++++++++++-- admin/tool/generator/lang/en/tool_generator.php | 2 + lang/en/grades.php | 1 + 3 files changed, 74 insertions(+), 6 deletions(-) diff --git a/admin/tool/generator/classes/course_backend.php b/admin/tool/generator/classes/course_backend.php index 20a0186..ceabe66 100644 --- a/admin/tool/generator/classes/course_backend.php +++ b/admin/tool/generator/classes/course_backend.php @@ -47,7 +47,7 @@ class tool_generator_course_backend extends tool_generator_backend { /** * @var array Number of students enrolled in course */ - private static $paramusers = array(1, 100, 1000, 10000, 50000, 100000); + private static $paramusers = array(1, 100, 1000, 1000, 1000, 1000); /** * Total size of small files: 1KB, 1MB, 10MB, 100MB, 1GB, 2GB. * @@ -79,6 +79,11 @@ class tool_generator_course_backend extends tool_generator_backend { private static $paramforumposts = array(2, 2, 5, 10, 10, 10); /** + * @var array Number of grade items + */ + private static $paramgradeitems = array(2, 2, 5, 10, 100, 500); + + /** * @var string Course shortname */ private $shortname; @@ -183,11 +188,12 @@ class tool_generator_course_backend extends tool_generator_backend { // Make course. $this->course = $this->create_course(); $this->create_users(); - $this->create_assignments(); - $this->create_pages(); - $this->create_small_files(); - $this->create_big_files(); - $this->create_forum(); + //$this->create_assignments(); + //$this->create_pages(); + //$this->create_small_files(); + //$this->create_big_files(); + //$this->create_forum(); + $this->create_grade_items(); // Log total time. $this->log('coursecompleted', round(microtime(true) - $entirestart, 1)); @@ -343,6 +349,65 @@ class tool_generator_course_backend extends tool_generator_backend { } /** + * Creates a number of Grade items. + */ + private function create_grade_items() { + global $CFG; + + require_once($CFG->dirroot . '/lib/gradelib.php'); + // Set up generator. + // Create manual grade items. + $number = self::$paramgradeitems[$this->size]; + $numusers = self::$paramusers[$this->size]; + + $gradecategories = array(); + + $numcategories = intval($number / 10); + if ($numcategories == 0) { + $numcategories = 1; + } + + $this->log('creategradecategories', $numcategories, true); + for ($i = 0; $i < $numcategories; $i++) { + $params = new stdClass(); + + $params->courseid = $this->course->id; + if ($i >= ($numcategories / 2)) { + // Make this a sub category. + $params->parent = $gradecategories[$i - ($numcategories / 2)]->id; + } + $params->fullname = 'testcategory' . $i; + + $gradecategories[$i] = new grade_category($params, false); + $gradecategories[$i]->insert(); + + $this->dot($i, $numcategories); + } + $this->end_log(); + + $this->log('creategradeitems', $number, true); + for ($i = 0; $i < $number; $i++) { + $params = new stdClass(); + + $params->courseid = $this->course->id; + $params->categoryid = $gradecategories[$i % $numcategories]->id; + $params->itemname = 'gradeitem' . $i; + $params->itemtype = 'manual'; + $params->grademax = 100; + $params->grademin = 0; + + $grade_item = new grade_item($params, false); + $grade_item->insert(); + for ($j = 0; $j < $numusers; $j++) { + $grade_item->update_final_grade($this->get_target_user(), rand(0, 100), 'gradebook', 'Feedback', FORMAT_MOODLE, 2); + } + $this->dot($i, $number); + } + + $this->end_log(); + } + + /** * Creates a number of Page activities. */ private function create_pages() { diff --git a/admin/tool/generator/lang/en/tool_generator.php b/admin/tool/generator/lang/en/tool_generator.php index 86247ec..b4aeff4 100644 --- a/admin/tool/generator/lang/en/tool_generator.php +++ b/admin/tool/generator/lang/en/tool_generator.php @@ -76,6 +76,8 @@ $string['progress_createcourse'] = 'Creating course {$a}'; $string['progress_createforum'] = 'Creating forum ({$a} posts)'; $string['progress_createpages'] = 'Creating pages ({$a})'; $string['progress_createsmallfiles'] = 'Creating small files ({$a})'; +$string['progress_creategradecategories'] = 'Creating grade categories ({$a})'; +$string['progress_creategradeitems'] = 'Creating grade items ({$a})'; $string['progress_enrol'] = 'Enrolling users into course ({$a})'; $string['progress_sitecompleted'] = 'Site completed ({$a}s)'; $string['shortsize_0'] = 'XS'; diff --git a/lang/en/grades.php b/lang/en/grades.php index e80d92e..67a66ed 100644 --- a/lang/en/grades.php +++ b/lang/en/grades.php @@ -582,6 +582,7 @@ $string['reprintheaders'] = 'Reprint headers'; $string['resetweightsshort'] = 'Reset weights'; $string['resetweights'] = 'Reset weights of {$a->itemname}'; $string['respectingcurrentdata'] = 'leaving current configuration unmodified'; +$string['recalculatinggrades'] = 'Recalculating grades.'; $string['rowpreviewnum'] = 'Preview rows'; $string['savechanges'] = 'Save changes'; $string['savepreferences'] = 'Save preferences'; -- 1.8.3.2