Merge branch 'MDL-64214-35' of git://github.com/junpataleta/moodle into MOODLE_35_STABLE

This commit is contained in:
Jun Pataleta
2018-11-30 09:45:00 +08:00
4 changed files with 28 additions and 12 deletions
@@ -40,6 +40,7 @@ class managesubscriptions extends \moodleform {
* Defines the form used to add calendar subscriptions.
*/
public function definition() {
global $PAGE;
$mform = $this->_form;
$eventtypes = calendar_get_allowed_event_types();
if (in_array(true, $eventtypes, true) === false) {
@@ -86,6 +87,9 @@ class managesubscriptions extends \moodleform {
// Eventtype: 0 = user, 1 = global, anything else = course ID.
$mform->addElement('submit', 'add', get_string('add'));
// Add the javascript required to enhance this mform.
$PAGE->requires->js_call_amd('core_calendar/event_form', 'init', [$mform->getAttribute('id')]);
}
/**
-8
View File
@@ -2783,14 +2783,6 @@ function calendar_add_subscription($sub) {
unset($sub->groupcourseid);
}
// Pull the group id back out of the value. The form saves the value
// as "<courseid>-<groupid>" to allow the javascript to work correctly.
if (!empty($sub->groupid)) {
list($courseid, $groupid) = explode('-', $sub->groupid);
$sub->courseid = $courseid;
$sub->groupid = $groupid;
}
// Default course id if none is set.
if (empty($sub->courseid)) {
if ($sub->eventtype === 'site') {
+17 -1
View File
@@ -33,6 +33,7 @@ $categoryid = optional_param('category', null, PARAM_INT);
// Used for processing subscription actions.
$subscriptionid = optional_param('id', 0, PARAM_INT);
$pollinterval = optional_param('pollinterval', 0, PARAM_INT);
$groupcourseid = optional_param('groupcourseid', 0, PARAM_INT);
$action = optional_param('action', '', PARAM_INT);
$url = new moodle_url('/calendar/managesubscriptions.php');
@@ -61,7 +62,22 @@ if (!calendar_user_can_add_event($course)) {
print_error('errorcannotimport', 'calendar');
}
$form = new \core_calendar\local\event\forms\managesubscriptions(null, ['courseid' => $course->id]);
// Populate the 'group' select box based on the given 'groupcourseid', if necessary.
$groups = [];
if (!empty($groupcourseid)) {
require_once($CFG->libdir . '/grouplib.php');
$groupcoursedata = groups_get_course_data($groupcourseid);
if (!empty($groupcoursedata->groups)) {
foreach ($groupcoursedata->groups as $groupid => $groupdata) {
$groups[$groupid] = $groupdata->name;
}
}
}
$customdata = [
'courseid' => $course->id,
'groups' => $groups,
];
$form = new \core_calendar\local\event\forms\managesubscriptions(null, $customdata);
$form->set_data(array(
'course' => $course->id
));
+7 -3
View File
@@ -533,7 +533,8 @@ class core_calendar_events_testcase extends advanced_testcase {
$subscription = new stdClass();
$subscription->eventtype = 'group';
$subscription->name = 'test';
$subscription->groupid = "{$courseid}-{$groupid}";
$subscription->courseid = $courseid;
$subscription->groupid = $groupid;
// Trigger and capture the event.
$sink = $this->redirectEvents();
@@ -668,7 +669,9 @@ class core_calendar_events_testcase extends advanced_testcase {
$subscription = new stdClass();
$subscription->eventtype = 'group';
$subscription->name = 'test';
$subscription->groupid = "{$courseid}-{$groupid}";
$subscription->courseid = $courseid;
$subscription->groupid = $groupid;
$subscription->id = calendar_add_subscription($subscription);
// Now edit it.
$subscription->name = 'awesome';
@@ -797,7 +800,8 @@ class core_calendar_events_testcase extends advanced_testcase {
$subscription = new stdClass();
$subscription->eventtype = 'group';
$subscription->name = 'test';
$subscription->groupid = "{$courseid}-{$groupid}";
$subscription->groupid = $groupid;
$subscription->courseid = $courseid;
$subscription->id = calendar_add_subscription($subscription);
// Trigger and capture the event.