1. This used to use a complex legacy system which was buggy.
2. It now relies on a new mod/...:addinstance capability for each module.
3. All the legacy code has been stripped out.
4. Old restriction data is upgraded by creating the necessary permission
overrides. Similarly, when old backups are restored, the old settings
are converted to be overrides.
5. The required addinstance capabilities will be added as a separate
commit.
6. There is a developer debug warning about modules that are missing the
addinstance capability, unless they are MOD_ARCHETYPE_SYSTEM mods.
Please note all plugin references from core should use callbacks, it is not ok to use capabilities or links to plugins because they may not be present in customised installs.
AMOS BEGIN
CPY [log:viewlive,coursereport_log,[loglive:view,report_loglive]
MOV [livelogs,core],[livelogs,report_loglive]
CPY [loglive,coursereport_log],[pluginname,report_loglive]
AMOS END
Big thanks to the developers who put effort into this improvement:
* Jonathan Robson <jonathan.robson@remote-learner.net>
* Jonathan Harker <jonathan@catalyst.net.nz>
The 'Show description' feature is about optionally including module description on the course page. This change include the necessary infrastructure - new database field, new FEATURE constant, changes to forms to display it, new language strings for it, backup and restore, and old course conversion. (I found the places to change by searching for an existing field in course_modules).
Documentation for the field is included in install.xml and in modinfolib.
1. added pluginname_comment_validate callback to comments api
2. change permission callback defaults to false
3. Tidied up serveal areas of comments and implemented callback to
ignore system permissions for view (credits to Sam Hemelryk)
AMOS BEGIN
MOV [modulerejectcomment,error],[callbackrejectcomment,error]
AMOS END
The new strings file core_plugin defines names of all plugin types
supported by Moodle. Some strings have already been defined elsewhere
and we use AMOS script here to copy their translation, if it is
available.
AMOS BEGIN
CPY [settings,core],[settings,core_plugin]
CPY [status,core],[status,core_plugin]
CPY [missingfromdisk,core],[status_missing,core_plugin]
CPY [nodatabase,core_admin],[status_nodb,core_plugin]
CPY [authenticationplugins,core],[type_auth_plural,core_plugin]
CPY [block,core],[type_block,core_plugin]
CPY [blocks,core],[type_block_plural,core_plugin]
CPY [coursereport,core],[type_coursereport,core_plugin]
CPY [coursereports,core],[type_coursereport_plural,core_plugin]
CPY [filter,core],[type_filter,core_plugin]
CPY [courseformats,core],[type_format_plural,core_plugin]
CPY [activitymodule,core],[type_mod,core_plugin]
CPY [activitymodules,core],[type_mod_plural,core_plugin]
CPY [plagiarism,core_plagiarism],[type_plagiarism,core_plugin]
CPY [portfolio,core_portfolio],[type_portfolio,core_plugin]
CPY [portfolios,core_portfolio],[type_portfolio_plural,core_plugin]
CPY [questiontype,core_admin],[type_qtype,core_plugin]
CPY [questiontypes,core_admin],[type_qtype_plural,core_plugin]
CPY [repository,core_repository],[type_repository,core_plugin]
CPY [theme,core],[type_theme,core_plugin]
CPY [themes,core],[type_theme_plural,core_plugin]
CPY [uninstallplugin,core_admin],[uninstall,core_plugin]
CPY [version,core],[version,core_plugin]
CPY [assignmenttype,mod_assignment],[subplugintype_assignment,mod_assignment]
CPY [presets,mod_data],[subplugintype_datapreset_plural,mod_data]
CPY [evaluationmethod,mod_workshop],[subplugintype_workshopeval,mod_workshop]
CPY [strategy,mod_workshop],[subplugintype_workshopform,mod_workshop]
AMOS END
Internally, the new script modduplicate.php performs a single activity
backup and restore and then moves the newly created copy right below the
original.
As Eloy Lafuente noticed in the tracker discussion, we display the
information about the current version in the browser window title but
not at the screen itself. The patch fixes that by displaying the
information in the page heading instead of the page title.
Eloy's original idea to put the information into the grey message box
would require a change of [upgradesure,core_admin] string because
unfortunately it does not expect $a as an object but as a plain string.
This is a final cleanup commit of fullname and shortname issue. All
places where these strings were detected yet have been replaced with
proper fullnamecourse or fullnameuser or some other context specific
string.
AMOS BEGIN
CPY [fullname,core],[outcomefullname,core_grades]
CPY [shortname,core],[outcomeshortname,core_grades]
CPY [name,core],[rolefullname,core_role]
CPY [shortname,core],[roleshortname,core_role]
AMOS END