MDL-69156 backup: correct behaviour of course copy idnumber field.
authorPaul Holden <paulh@moodle.com>
Thu, 24 Sep 2020 22:14:06 +0000 (23:14 +0100)
committerAdrian Perez <adrian.perez@ffhs.ch>
Thu, 29 Oct 2020 13:15:04 +0000 (14:15 +0100)
When a given user doesn't have the capability to change the idnumber
field during course copy, freeze the field value.

backup/util/ui/classes/output/copy_form.php

index dec99e4..51f8bb8 100644 (file)
@@ -152,14 +152,14 @@ class copy_form extends \moodleform {
             $mform->addHelpButton('relativedatesmodegroup', 'relativedatesmode');
         }
 
-        // Course id number.
+        // Course ID number (default to the current course ID number; blank for users who can't change ID numbers).
         $mform->addElement('text', 'idnumber', get_string('idnumbercourse'), 'maxlength="100"  size="10"');
+        $mform->setDefault('idnumber', $course->idnumber);
         $mform->addHelpButton('idnumber', 'idnumbercourse');
         $mform->setType('idnumber', PARAM_RAW);
-        if (!empty($course->id) and !has_capability('moodle/course:changeidnumber', $coursecontext)) {
+        if (!has_capability('moodle/course:changeidnumber', $coursecontext)) {
             $mform->hardFreeze('idnumber');
-            $mform->setDefault('idnumber', '');
-            $mform->setConstants('idnumber', $course->idnumber);
+            $mform->setConstant('idnumber', '');
         }
 
         // Keep source course user data.
@@ -173,7 +173,7 @@ class copy_form extends \moodleform {
         );
         if (!has_all_capabilities($requiredcapabilities, $coursecontext)) {
             $mform->hardFreeze('userdata');
-            $mform->setConstants('userdata', 0);
+            $mform->setConstant('userdata', 0);
         }
 
         // Keep manual enrolments.