Merge branch 'MDL-66357-master' of git://github.com/sarjona/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 8 Apr 2020 00:52:15 +0000 (02:52 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 8 Apr 2020 00:52:15 +0000 (02:52 +0200)
1  2 
lib/db/upgrade.php
version.php

@@@ -2213,15 -2213,39 +2213,50 @@@ function xmldb_main_upgrade($oldversion
      }
  
      if ($oldversion < 2020040200.01) {
 -        upgrade_main_savepoint(true, 2020040200.01);
 +        // Clean up completion criteria records referring to courses that no longer exist.
 +        $select = 'criteriatype = :type AND courseinstance NOT IN (SELECT id FROM {course})';
 +        $params = ['type' => 8]; // COMPLETION_CRITERIA_TYPE_COURSE.
 +
 +        $DB->delete_records_select('course_completion_criteria', $select, $params);
 +
 +        // Main savepoint reached.
 +        upgrade_main_savepoint(true, 2020040200.01);
 +    }
 +
++    if ($oldversion < 2020040700.00) {
+         // Remove deprecated Mozilla OpenBadges backpack.
+         $url = 'https://backpack.openbadges.org';
+         $bp = $DB->get_record('badge_external_backpack', ['backpackapiurl' => $url]);
+         if ($bp) {
+             // Remove connections for users to this backpack.
+             $sql = "SELECT DISTINCT bb.id
+                       FROM {badge_backpack} bb
+                  LEFT JOIN {badge_external} be ON be. backpackid = bb.externalbackpackid
+                      WHERE bb.externalbackpackid = :backpackid";
+             $params = ['backpackid' => $bp->id];
+             $externalbackpacks = $DB->get_fieldset_sql($sql, $params);
+             if ($externalbackpacks) {
+                 list($sql, $params) = $DB->get_in_or_equal($externalbackpacks);
+                 // Delete user external collections references to this backpack.
+                 $DB->execute("DELETE FROM {badge_external} WHERE backpackid " . $sql, $params);
+             }
+             $DB->delete_records('badge_backpack', ['externalbackpackid' => $bp->id]);
+             // Delete deprecated backpack entry.
+             $DB->delete_records('badge_external_backpack', ['backpackapiurl' => $url]);
+         }
+         // Set active external backpack to Badgr.io.
+         $url = 'https://api.badgr.io/v2';
+         if ($bp = $DB->get_record('badge_external_backpack', ['backpackapiurl' => $url])) {
+             set_config('badges_site_backpack', $bp->id);
+         } else {
+             unset_config('badges_site_backpack');
+         }
++        upgrade_main_savepoint(true, 2020040700.00);
+     }
      return true;
  }
diff --cc version.php
@@@ -29,7 -29,7 +29,7 @@@
  
  defined('MOODLE_INTERNAL') || die();
  
--$version  = 2020040200.01;              // YYYYMMDD      = weekly release date of this DEV branch.
++$version  = 2020040700.00;              // YYYYMMDD      = weekly release date of this DEV branch.
                                          //         RR    = release increments - 00 in DEV branches.
                                          //           .XX = incremental changes.
  $release  = '3.9dev (Build: 20200402)'; // Human-friendly version name