diff --git a/admin/tool/recyclebin/db/install.xml b/admin/tool/recyclebin/db/install.xml
index 8aa6c9d45b888..748155d7d8842 100644
--- a/admin/tool/recyclebin/db/install.xml
+++ b/admin/tool/recyclebin/db/install.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/admin/tool/recyclebin/db/upgrade.php b/admin/tool/recyclebin/db/upgrade.php
index 544a99885ef40..71a6a18927d1b 100644
--- a/admin/tool/recyclebin/db/upgrade.php
+++ b/admin/tool/recyclebin/db/upgrade.php
@@ -47,9 +47,9 @@ function xmldb_tool_recyclebin_upgrade($oldversion) {
if ($oldversion < 2024111500) {
- // Changing precision of field fullname on table tool_recyclebin_category to (255).
+ // Changing precision of field fullname on table tool_recyclebin_category to (1333).
$table = new xmldb_table('tool_recyclebin_category');
- $field = new xmldb_field('fullname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'shortname');
+ $field = new xmldb_field('fullname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'timecreated');
// Launch change of precision for field fullname.
$dbman->change_field_precision($table, $field);
@@ -58,5 +58,18 @@ function xmldb_tool_recyclebin_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2024111500, 'tool', 'recyclebin');
}
+ if ($oldversion < 2024121801) {
+
+ // Changing precision of field shortname on table tool_recyclebin_category to (1333).
+ $table = new xmldb_table('tool_recyclebin_category');
+ $field = new xmldb_field('shortname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'fullname');
+
+ // Launch change of precision for field shortname.
+ $dbman->change_field_precision($table, $field);
+
+ // Recyclebin savepoint reached.
+ upgrade_plugin_savepoint(true, 2024121801, 'tool', 'recyclebin');
+ }
+
return true;
}
diff --git a/admin/tool/recyclebin/version.php b/admin/tool/recyclebin/version.php
index c32e1d7de8d58..b86599ffce505 100644
--- a/admin/tool/recyclebin/version.php
+++ b/admin/tool/recyclebin/version.php
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2024121800; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->version = 2024121801; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2024100100; // Requires this Moodle version.
$plugin->component = 'tool_recyclebin'; // Full name of the plugin (used for diagnostics).
diff --git a/admin/tool/uploadcourse/classes/course.php b/admin/tool/uploadcourse/classes/course.php
index 6600bf0b1be9a..f7ae7eb3400c2 100644
--- a/admin/tool/uploadcourse/classes/course.php
+++ b/admin/tool/uploadcourse/classes/course.php
@@ -432,8 +432,8 @@ public function prepare() {
}
// Ensure we don't overflow the maximum length of the shortname field.
- if (core_text::strlen($this->shortname) > 255) {
- $this->error('invalidshortnametoolong', new lang_string('invalidshortnametoolong', 'tool_uploadcourse', 255));
+ if (core_text::strlen($this->shortname) > 1333) {
+ $this->error('invalidshortnametoolong', new lang_string('invalidshortnametoolong', 'tool_uploadcourse', 1333));
return false;
}
}
@@ -518,6 +518,16 @@ public function prepare() {
return false;
}
+ // Ensure we don't overflow the maximum length of the shortname field.
+ if (
+ !empty($coursedata['shortname']) &&
+ core_text::strlen($coursedata['shortname']) > \core_course\constants::SHORTNAME_MAXIMUM_LENGTH
+ ) {
+ $this->error('invalidshortnametoolong', new lang_string('invalidshortnametoolong', 'tool_uploadcourse',
+ \core_course\constants::SHORTNAME_MAXIMUM_LENGTH));
+ return false;
+ }
+
// If the course does not exist, or will be forced created.
if (!$exists || $mode === tool_uploadcourse_processor::MODE_CREATE_ALL) {
diff --git a/course/classes/constants.php b/course/classes/constants.php
index 4242d77a838ad..831758a6c9def 100644
--- a/course/classes/constants.php
+++ b/course/classes/constants.php
@@ -28,6 +28,6 @@ abstract class constants {
public const FULLNAME_MAXIMUM_LENGTH = 1333;
/** @var int the length of the course.shortname field. */
- public const SHORTNAME_MAXIMUM_LENGTH = 255;
+ public const SHORTNAME_MAXIMUM_LENGTH = 1333;
}
diff --git a/lib/db/install.xml b/lib/db/install.xml
index 6cef0858a3704..8c110ca040463 100644
--- a/lib/db/install.xml
+++ b/lib/db/install.xml
@@ -73,7 +73,7 @@
-
+
@@ -401,7 +401,7 @@
-
+
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php
index 1cdcc28b500e3..3c616e9048897 100644
--- a/lib/db/upgrade.php
+++ b/lib/db/upgrade.php
@@ -1166,11 +1166,11 @@ function xmldb_main_upgrade($oldversion) {
if ($oldversion < 2024111500.00) {
- // Changing precision of field fullname on table course to (1333).
+ // Changing precision of field shortname on table course to (1333).
$table = new xmldb_table('course');
- $field = new xmldb_field('fullname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'sortorder');
+ $field = new xmldb_field('shortname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'sortorder');
- // Launch change of precision for field fullname.
+ // Launch change of precision for field shortname.
$dbman->change_field_precision($table, $field);
// Main savepoint reached.
@@ -1179,11 +1179,11 @@ function xmldb_main_upgrade($oldversion) {
if ($oldversion < 2024111500.01) {
- // Changing precision of field fullname on table course_request to (1333).
+ // Changing precision of field shortname on table course_request to (1333).
$table = new xmldb_table('course_request');
- $field = new xmldb_field('fullname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'id');
+ $field = new xmldb_field('shortname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'id');
- // Launch change of precision for field fullname.
+ // Launch change of precision for field shortname.
$dbman->change_field_precision($table, $field);
// Main savepoint reached.
@@ -1382,15 +1382,83 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2025011700.02);
}
+<<<<<<< HEAD
if ($oldversion < 2025012400.01) {
// Remove the default value for the apiversion field.
$table = new xmldb_table('badge_external_backpack');
$apiversionfield = new xmldb_field('apiversion', XMLDB_TYPE_CHAR, '12', null, XMLDB_NOTNULL, null, null);
$dbman->change_field_default($table, $apiversionfield);
+=======
+ if ($oldversion < 2025012400.00) {
+
+ // Changing precision of field shortname on table course to (1333).
+ $table = new xmldb_table('course');
+ $field = new xmldb_field('fullname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'sortorder');
+
+ // Launch change of precision for field fullname.
+ $dbman->change_field_precision($table, $field);
+
+ // Main savepoint reached.
+ upgrade_main_savepoint(true, 2025012400.00);
+ }
+
+ if ($oldversion < 2025012400.01) {
+
+ // Changing precision of field fullname on table course_request to (1333).
+ $table = new xmldb_table('course_request');
+ $field = new xmldb_field('fullname', XMLDB_TYPE_CHAR, '1333', null, XMLDB_NOTNULL, null, null, 'id');
+
+ // Launch change of precision for field fullname.
+ $dbman->change_field_precision($table, $field);
// Main savepoint reached.
upgrade_main_savepoint(true, 2025012400.01);
}
+ // Now we want to change the precision of course_request.shortname.
+ // To do this, we need to first drop the index, then re-create it.
+ if ($oldversion < 2025012400.02) {
+
+ // Define index shortname (not unique) to be dropped form course_request.
+ $table = new xmldb_table('course_request');
+ $index = new xmldb_index('shortname', XMLDB_INDEX_NOTUNIQUE, ['shortname']);
+
+ // Conditionally launch drop index shortname.
+ if ($dbman->index_exists($table, $index)) {
+ $dbman->drop_index($table, $index);
+ }
+
+ // Main savepoint reached.
+ upgrade_main_savepoint(true, 2025012400.02);
+ }
+
+ if ($oldversion < 2025012400.03) {
+
+ // Changing precision of field shortname on table course_request to (255).
+ $table = new xmldb_table('course_request');
+ $field = new xmldb_field('shortname', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, 'shortname');
+
+ // Launch change of precision for field shortname.
+ $dbman->change_field_precision($table, $field);
+
+ // Main savepoint reached.
+ upgrade_main_savepoint(true, 2025012400.03);
+ }
+
+ if ($oldversion < 2025012400.04) {
+
+ // Define index shortname (not unique) to be added to course_request.
+ $table = new xmldb_table('course_request');
+ $index = new xmldb_index('shortname', XMLDB_INDEX_NOTUNIQUE, ['shortname']);
+
+ // Conditionally launch add index shortname.
+ if (!$dbman->index_exists($table, $index)) {
+ $dbman->add_index($table, $index);
+ }
+
+ // Main savepoint reached.
+ upgrade_main_savepoint(true, 2025012400.04);
+ }
+
return true;
}
diff --git a/version.php b/version.php
index 2e218ac513f92..745782811d3fa 100644
--- a/version.php
+++ b/version.php
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
-$version = 2025013100.00; // YYYYMMDD = weekly release date of this DEV branch.
+$version = 2025012400.04; // YYYYMMDD = weekly release date of this DEV branch.
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.
$release = '5.0dev (Build: 20250131)'; // Human-friendly version name