diff --git a/course/externallib.php b/course/externallib.php index 8d5997663df..81e21ababe5 100644 --- a/course/externallib.php +++ b/course/externallib.php @@ -3823,12 +3823,14 @@ class core_course_external extends external_api { $warning = []; - $favouriteexists = $ufservice->favourite_exists('core_course', 'courses', $course['id'], \context_system::instance()); + $favouriteexists = $ufservice->favourite_exists('core_course', 'courses', $course['id'], + \context_course::instance($course['id'])); if ($course['favourite']) { if (!$favouriteexists) { try { - $ufservice->create_favourite('core_course', 'courses', $course['id'], \context_system::instance()); + $ufservice->create_favourite('core_course', 'courses', $course['id'], + \context_course::instance($course['id'])); } catch (Exception $e) { $warning['courseid'] = $course['id']; if ($e instanceof moodle_exception) { @@ -3849,7 +3851,8 @@ class core_course_external extends external_api { } else { if ($favouriteexists) { try { - $ufservice->delete_favourite('core_course', 'courses', $course['id'], \context_system::instance()); + $ufservice->delete_favourite('core_course', 'courses', $course['id'], + \context_course::instance($course['id'])); } catch (Exception $e) { $warning['courseid'] = $course['id']; if ($e instanceof moodle_exception) { diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 9b9fb47a21e..350bf04a61b 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2771,5 +2771,18 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2018110700.01); } + if ($oldversion < 2018111300.01) { + // Update favourited courses, so they are saved in the particular course context instead of the system. + $favouritedcourses = $DB->get_records('favourite', ['component' => 'core_course', 'itemtype' => 'courses']); + + foreach ($favouritedcourses as $fc) { + $coursecontext = \context_course::instance($fc->itemid); + $fc->contextid = $coursecontext->id; + $DB->update_record('favourite', $fc); + } + + upgrade_main_savepoint(true, 2018111300.01); + } + return true; } diff --git a/version.php b/version.php index 6a8ab5b3d7b..d60bf4f7f7b 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2018111300.00; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2018111300.01; // YYYYMMDD = weekly release date of this DEV branch. // RR = release increments - 00 in DEV branches. // .XX = incremental changes.