Merge branch 'MDL-60963-master' of git://github.com/ryanwyllie/moodle
authorDavid Monllao <davidm@moodle.com>
Wed, 17 Jan 2018 09:49:58 +0000 (10:49 +0100)
committerDavid Monllao <davidm@moodle.com>
Wed, 17 Jan 2018 09:49:58 +0000 (10:49 +0100)
1  2 
calendar/classes/external/calendar_event_exporter.php

@@@ -93,8 -93,6 +93,8 @@@ class calendar_event_exporter extends e
  
          $values = parent::get_other_values($output);
          $event = $this->event;
 +        $course = $this->related['course'];
 +        $hascourse = !empty($course);
  
          // By default all events that can be edited are
          // draggable.
              $values['editurl'] = $editurl->out(false);
          } else if ($event->get_type() == 'category') {
              $url = $event->get_category()->get_proxied_instance()->get_view_link();
 -        } else if ($event->get_type() == 'course') {
 -            $url = course_get_url($event->get_course()->get('id') ?: SITEID);
          } else {
              // TODO MDL-58866 We do not have any way to find urls for events outside of course modules.
 -            $course = $event->get_course()->get('id') ?: SITEID;
 -            $url = course_get_url($course);
 +            $url = course_get_url($hascourse ? $course : SITEID);
          }
  
          $values['url'] = $url->out(false);
          }
  
          // Include course's shortname into the event name, if applicable.
 -        $course = $this->event->get_course();
 -        if ($course && $course->get('id') && $course->get('id') !== SITEID) {
 +        if ($hascourse && $course->id !== SITEID) {
              $eventnameparams = (object) [
                  'name' => $values['popupname'],
 -                'course' => format_string($course->get('shortname'), true, [
 -                        'context' => $this->related['context'],
 -                    ])
 +                'course' => $values['course']->shortname,
              ];
              $values['popupname'] = get_string('eventnameandcourse', 'calendar', $eventnameparams);
          }
          $related['daylink'] = \moodle_url::class;
          $related['type'] = '\core_calendar\type_base';
          $related['today'] = 'int';
+         $related['moduleinstance'] = 'stdClass?';
  
          return $related;
      }
       * @return array
       */
      protected function get_module_timestamp_limits($event) {
-         global $DB;
          $values = [];
          $mapper = container::get_event_mapper();
          $starttime = $event->get_times()->get_start_time();
          $modname = $event->get_course_module()->get('modname');
-         $modid = $event->get_course_module()->get('instance');
-         $moduleinstance = $DB->get_record($modname, ['id' => $modid]);
+         $moduleinstance = $this->related['moduleinstance'];
  
          list($min, $max) = component_callback(
              'mod_' . $modname,