The plugins check page displays other plugins that the current one
depends on. Previously, we always displayed the other plugin as a link
to the plugins directory. This did not work well in two scenarios:
* The admin wants/needs to upload the other plugin from the ZIP file
(e.g. it is not available in the plugins directory),
* the other plugin is actually a standard plugin that is not supposed to
be registered with the plugins directory.
This patch displays the Install or Upload or Check for updates links
next to the required plugin instead, as appropriate.
Rather than using module cron, use scheduled tasks to work out
if cron has been running recently.
This is not perfect, the admin could disble all tasks, or reschedule
them - but its not complex to compute.
The tests now cover hidden grades in sub categories for all aggregation types. This change
includes a data generator for grade categories, with unit tests and behat tests for
the generator.
* Upgrades existing data so that the groupmembersonly option is
replaced with equivalent data for the new availability API.
* Removes the database field and admin setting used for
groupmembersonly.
* Changes core modinfo library to remove/deprecate groupmembersonly
data and functions.
* Changes other core library files to remove groupmembersonly
references.
Includes deprecation of several functions, listed in lib/upgrade.txt.
For data mapping LDAP or CAS. Change order of fieldname display checks to verify
custom profile fields first to allow custom field shortname to contain number at the end.
Existence of admin settings must not depend on other settings,
especially not from other plugins.
In any case somebody should cleaup the preference mess and allow
plugins to setup user preferences instead of hardcoding everything in
core.
New features:
* environment.xml files in all types of plugins
* support for plugin strings via new optional plugin attribute in FEEDBACK
* support for class_name::method_name custom callbacks and classloader
We now call them all as just 'plugins' for consistency. There where we need to
explicitly distinguish the source of the plugin, we say they are 'additional
plugins' on contrary to 'standards plugins' coming with the core.