MDL-60468 calendar: fix event type defaults logic
authorSimey Lameze <simey@moodle.com>
Wed, 18 Oct 2017 07:41:05 +0000 (15:41 +0800)
committerSimey Lameze <simey@moodle.com>
Wed, 18 Oct 2017 07:41:05 +0000 (15:41 +0800)
calendar/lib.php

index 6fc0e13..f685e02 100644 (file)
@@ -3225,11 +3225,16 @@ function calendar_output_fragment_event_form($args) {
             true,
             $data
         );
-        if ($courseid != SITEID) {
+
+        // Let's check first which event types user can add.
+        calendar_get_allowed_types($allowed, $courseid);
+
+        // If the user is on course context and is allowed to add course events set the event type default to course.
+        if ($courseid != SITEID && !empty($allowed->courses)) {
             $data['eventtype'] = 'course';
             $data['courseid'] = $courseid;
             $data['groupcourseid'] = $courseid;
-        } else if (!empty($categoryid)) {
+        } else if (!empty($categoryid) && !empty($allowed->category)) {
             $data['eventtype'] = 'category';
             $data['categoryid'] = $categoryid;
         }