Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-37459

Allow "locked" and "advanced" checkboxes to be added to any admin setting.

    Details

    • Testing Instructions:
      Hide
      1. This change should have no effect on existing module forms because it only adds the functions but does not use them in any modules (see linked issues for implementations).
      2. So testing requires:
      3. Viewing the admin settings forms for quiz and verifying that the settings can be updated and saved with no errors
      4. Viewing the activity settings forms for a few different activities including assignment and quiz and verifying there are no errors when viewing/saving.
      Show
      This change should have no effect on existing module forms because it only adds the functions but does not use them in any modules (see linked issues for implementations). So testing requires: Viewing the admin settings forms for quiz and verifying that the settings can be updated and saved with no errors Viewing the activity settings forms for a few different activities including assignment and quiz and verifying there are no errors when viewing/saving.
    • Affected Branches:
      MOODLE_25_STABLE
    • Fixed Branches:
      MOODLE_26_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-37459-master

      Description

      This patch moves the implementation of the "advanced" and "locked" checkboxes for admin_settings to the base class - so any admin setting can use these flags. The current implementations of blah_with_advanced and blah_with_lock have been converted into wrappers which just set the flags on the base class.

      This allows any setting to use any combination of locked or advanced checkboxes and makes it easier to add new ones (hidden might be nice...).

      This change is 100% backward compatible and does not require any changes to existing subclasses of admin_settings.

      To enable an advanced checkbox - call $setting->set_advanced(true);
      To enable an locked checkbox - call $setting->set_lockable(true);

      To set the defaults for the checkboxes call

      $setting->set_advanced_flag_options(admin_setting::OPTION_ENABLED, true);
      or
      $setting->set_locked_flag_options(admin_setting::OPTION_ENABLED, false);

      Note: All modules will work with this patch with 0 changes - the config values set have the same names as the previous implementations.

      Discussion link:
      https://moodle.org/mod/forum/discuss.php?d=220263

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Votes:
                  9 Vote for this issue
                  Watchers:
                  18 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Fix Release Date:
                    18/Nov/13