MDL-51604 course: trigger course created event earlier
authorMarina Glancy <marina@moodle.com>
Wed, 30 Sep 2015 04:49:58 +0000 (12:49 +0800)
committerMarina Glancy <marina@moodle.com>
Tue, 6 Oct 2015 01:44:55 +0000 (09:44 +0800)
course/lib.php
course/tests/courselib_test.php

index 38e19b6..ba830ca 100644 (file)
@@ -2605,12 +2605,6 @@ function create_course($data, $editoroptions = NULL) {
 
     $course = course_get_format($newcourseid)->get_course();
 
-    // Setup the blocks
-    blocks_add_default_course_blocks($course);
-
-    // Create a default section.
-    course_create_sections_if_missing($course, 0);
-
     fix_course_sortorder();
     // purge appropriate caches in case fix_course_sortorder() did not change anything
     cache_helper::purge_by_event('changesincourse');
@@ -2618,6 +2612,21 @@ function create_course($data, $editoroptions = NULL) {
     // new context created - better mark it as dirty
     $context->mark_dirty();
 
+    // Trigger a course created event.
+    $event = \core\event\course_created::create(array(
+        'objectid' => $course->id,
+        'context' => context_course::instance($course->id),
+        'other' => array('shortname' => $course->shortname,
+            'fullname' => $course->fullname)
+    ));
+    $event->trigger();
+
+    // Setup the blocks
+    blocks_add_default_course_blocks($course);
+
+    // Create a default section.
+    course_create_sections_if_missing($course, 0);
+
     // Save any custom role names.
     save_local_role_names($course->id, (array)$data);
 
@@ -2629,15 +2638,6 @@ function create_course($data, $editoroptions = NULL) {
         tag_set('course', $course->id, $data->tags, 'core', context_course::instance($course->id)->id);
     }
 
-    // Trigger a course created event.
-    $event = \core\event\course_created::create(array(
-        'objectid' => $course->id,
-        'context' => context_course::instance($course->id),
-        'other' => array('shortname' => $course->shortname,
-                         'fullname' => $course->fullname)
-    ));
-    $event->trigger();
-
     return $course;
 }
 
index e34a793..110b0c4 100644 (file)
@@ -1603,7 +1603,7 @@ class core_course_courselib_testcase extends advanced_testcase {
         $sink->close();
 
         // Validate the event.
-        $event = array_pop($events);
+        $event = $events[0];
         $this->assertInstanceOf('\core\event\course_created', $event);
         $this->assertEquals('course', $event->objecttable);
         $this->assertEquals($course->id, $event->objectid);
@@ -1633,7 +1633,7 @@ class core_course_courselib_testcase extends advanced_testcase {
         $imstestcase->imsplugin->cron();
         $events = $sink->get_events();
         $sink->close();
-        $event = array_pop($events);
+        $event = $events[0];
 
         // Validate the event triggered is \core\event\course_created. There is no need to validate the other values
         // as they have already been validated in the previous steps. Here we only want to make sure that when the