MDL-60826 calendar: update manage subscription page to use new function
This commit is contained in:
@@ -41,8 +41,8 @@ class managesubscriptions extends \moodleform {
|
||||
*/
|
||||
public function definition() {
|
||||
$mform = $this->_form;
|
||||
$eventtypes = calendar_get_all_allowed_types();
|
||||
if (empty($eventtypes)) {
|
||||
$eventtypes = calendar_get_allowed_event_types();
|
||||
if (in_array(true, $eventtypes, true) === false) {
|
||||
print_error('nopermissiontoupdatecalendar');
|
||||
}
|
||||
|
||||
@@ -100,9 +100,10 @@ class managesubscriptions extends \moodleform {
|
||||
|
||||
$errors = parent::validation($data, $files);
|
||||
|
||||
$coursekey = isset($data['groupcourseid']) ? 'groupcourseid' : 'courseid';
|
||||
$eventtypes = calendar_get_all_allowed_types();
|
||||
$eventtype = isset($data['eventtype']) ? $data['eventtype'] : null;
|
||||
$coursekey = ($eventtype == 'group') ? 'groupcourseid' : 'courseid';
|
||||
$courseid = (!empty($data[$coursekey])) ? $data[$coursekey] : null;
|
||||
$eventtypes = calendar_get_allowed_event_types($courseid);
|
||||
|
||||
if (empty($eventtype) || !isset($eventtypes[$eventtype])) {
|
||||
$errors['eventtype'] = get_string('invalideventtype', 'calendar');
|
||||
|
||||
@@ -61,7 +61,7 @@ if (!calendar_user_can_add_event($course)) {
|
||||
print_error('errorcannotimport', 'calendar');
|
||||
}
|
||||
|
||||
$form = new \core_calendar\local\event\forms\managesubscriptions();
|
||||
$form = new \core_calendar\local\event\forms\managesubscriptions(null, ['courseid' => $course->id]);
|
||||
$form->set_data(array(
|
||||
'course' => $course->id
|
||||
));
|
||||
@@ -105,26 +105,26 @@ if (!empty($formdata)) {
|
||||
}
|
||||
}
|
||||
|
||||
$types = calendar_get_all_allowed_types();
|
||||
$types = calendar_get_allowed_event_types($courseid);
|
||||
|
||||
$searches = [];
|
||||
$params = [];
|
||||
|
||||
$usedefaultfilters = true;
|
||||
if (!empty($courseid) && $courseid == SITEID && isset($types['site'])) {
|
||||
if (!empty($courseid) && $courseid == SITEID && !empty($types['site'])) {
|
||||
$searches[] = "(eventtype = 'site')";
|
||||
$searches[] = "(eventtype = 'user' AND userid = :userid)";
|
||||
$params['userid'] = $USER->id;
|
||||
$usedefaultfilters = false;
|
||||
}
|
||||
|
||||
if (!empty($courseid) && isset($types['course']) && array_key_exists($courseid, $types['course'])) {
|
||||
if (!empty($courseid) && !empty($types['course'])) {
|
||||
$searches[] = "((eventtype = 'course' OR eventtype = 'group') AND courseid = :courseid)";
|
||||
$params += ['courseid' => $courseid];
|
||||
$usedefaultfilters = false;
|
||||
}
|
||||
|
||||
if (!empty($categoryid) && isset($types['category']) && array_key_exists($categoryid, $types['category'])) {
|
||||
if (!empty($categoryid) && !empty($types['category'])) {
|
||||
$searches[] = "(eventtype = 'category' AND categoryid = :categoryid)";
|
||||
$params += ['categoryid' => $categoryid];
|
||||
$usedefaultfilters = false;
|
||||
@@ -134,19 +134,27 @@ if ($usedefaultfilters) {
|
||||
$searches[] = "(eventtype = 'user' AND userid = :userid)";
|
||||
$params['userid'] = $USER->id;
|
||||
|
||||
if (isset($types['site'])) {
|
||||
if (!empty($types['site'])) {
|
||||
$searches[] = "(eventtype = 'site' AND courseid = :siteid)";
|
||||
$params += ['siteid' => SITEID];
|
||||
}
|
||||
|
||||
if (isset($types['course'])) {
|
||||
list($courseinsql, $courseparams) = $DB->get_in_or_equal(array_keys($types['course']), SQL_PARAMS_NAMED, 'course');
|
||||
$searches[] = "((eventtype = 'course' OR eventtype = 'group') AND courseid {$courseinsql})";
|
||||
$params += $courseparams;
|
||||
if (!empty($types['course'])) {
|
||||
$courses = calendar_get_default_courses(null, 'id', true);
|
||||
if (!empty($courses)) {
|
||||
$courseids = array_map(function ($c) {
|
||||
return $c->id;
|
||||
}, $courses);
|
||||
|
||||
list($courseinsql, $courseparams) = $DB->get_in_or_equal($courseids, SQL_PARAMS_NAMED, 'course');
|
||||
$searches[] = "((eventtype = 'course' OR eventtype = 'group') AND courseid {$courseinsql})";
|
||||
$params += $courseparams;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($types['category'])) {
|
||||
list($categoryinsql, $categoryparams) = $DB->get_in_or_equal(array_keys($types['category']), SQL_PARAMS_NAMED, 'category');
|
||||
if (!empty($types['category'])) {
|
||||
list($categoryinsql, $categoryparams) = $DB->get_in_or_equal(
|
||||
array_keys(\coursecat::make_categories_list('moodle/category:manage')), SQL_PARAMS_NAMED, 'category');
|
||||
$searches[] = "(eventtype = 'category' AND categoryid {$categoryinsql})";
|
||||
$params += $categoryparams;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user