Merge branch 'MDL-65313-36' of https://github.com/snake/moodle into MOODLE_36_STABLE

This commit is contained in:
Jun Pataleta
2019-05-06 16:02:10 +08:00
4 changed files with 35 additions and 1 deletions
+6
View File
@@ -572,6 +572,12 @@ function groups_delete_group($grouporid) {
// Delete the messages now.
$DB->delete_records('messages', ['conversationid' => $conversation->id]);
}
// Delete all favourite records for all users relating to this conversation.
// Whilst not ideal, we can't use the component service as it doesn't exist here, so must do this manually.
$params = ['component' => 'core_message', 'itemtype' => 'message_conversations', 'contextid' => $conversation->contextid];
$DB->delete_records_select('favourite', ' component = :component AND itemtype = :itemtype AND contextid = "contextid',
$params);
}
//group itself last
+12
View File
@@ -372,6 +372,10 @@ class core_group_lib_testcase extends advanced_testcase {
$g2m3 = \core_message\tests\helper::send_fake_message_to_conversation($user1, $groupconversation2->id);
$g2m4 = \core_message\tests\helper::send_fake_message_to_conversation($user2, $groupconversation2->id);
// Favourite the conversation for several of the users.
\core_message\api::set_favourite_conversation($groupconversation1->id, $user1->id);
\core_message\api::set_favourite_conversation($groupconversation1->id, $user2->id);
// Delete a few messages.
\core_message\api::delete_message($user1->id, $g1m1);
\core_message\api::delete_message($user1->id, $g1m2);
@@ -407,6 +411,14 @@ class core_group_lib_testcase extends advanced_testcase {
$this->assertEquals(1, $DB->count_records('messages', ['id' => $g2m2]));
$this->assertEquals(1, $DB->count_records('messages', ['id' => $g2m3]));
$this->assertEquals(1, $DB->count_records('messages', ['id' => $g2m4]));
// Confirm favourites were deleted for both users.
$user1service = \core_favourites\service_factory::get_service_for_user_context(context_user::instance($user1->id));
$this->assertFalse($user1service->favourite_exists('core_message', 'message_conversations', $groupconversation1->id,
$coursecontext1));
$user2service = \core_favourites\service_factory::get_service_for_user_context(context_user::instance($user1->id));
$this->assertFalse($user2service->favourite_exists('core_message', 'message_conversations', $groupconversation1->id,
$coursecontext1));
}
public function test_groups_delete_group_members() {
+16
View File
@@ -3056,5 +3056,21 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2018120303.05);
}
if ($oldversion < 2018120303.16) {
// Delete all stale favourite records which were left behind when a course was deleted.
$select = 'id IN (
SELECT fav.id as id
FROM {favourite} fav
LEFT JOIN {context} ctx ON (ctx.id = fav.contextid)
WHERE fav.component = :component
AND fav.itemtype = :itemtype
AND ctx.id IS NULL
)';
$params = ['component' => 'core_message', 'itemtype' => 'message_conversations'];
$DB->delete_records_select('favourite', $select, $params);
upgrade_main_savepoint(true, 2018120303.16);
}
return true;
}
+1 -1
View File
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
$version = 2018120303.15; // 20181203 = branching date YYYYMMDD - do not modify!
$version = 2018120303.16; // 20181203 = branching date YYYYMMDD - do not modify!
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.