When resetting a sequence number, we call change_database_structure()
which in turns clears the MUC cache for databasemeta. This cache contains
information about the table, columns, etc.
After the cache is cleared, it must be re-filled, and it was discovered
that the get_columns() code which fills this cache can take a particularly
long time. Given that this is called for every table in Moodle, this can
add up to a significant period, and this is done on a per-testsuite basis.
On my SSD install this was taking approximately 40 seconds on each re-fill
of the cache.
Added property 'visible' for cohorts. Unsetting it hides the cohort from users in the course.
AMOS BEGIN
CPY [visible,core_moodle],[visible,core_cohort]
AMOS END
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.
When all starting autoincrement ids are the same, it's difficult to detect coding and testing
errors that use the incorrect id in test calls. The classic case is cmid vs instance id.
To reduce the chance of the coding error we start sequences at different values where possible.
OUBlog installation is the case that highlighted this as it inserts a sitewide course module
at install time and cmid <> instance id in most cases.
Changes core code to use new API instead of the old one when
checking user access to activities and sections.
Includes changes to other libraries that are necessary after
adding the availability system and removing old conditional tables
etc.
Last commit switched from raw arrays to associative
arrays. That leads to json_encode() to generate an
object instead of an array, ultimately leading to
problems with the rest of code expecting an array.
By using array_values() we are moving back to the
non-associative array.
Also, fix some file permissions.
The improvements include:
* HTMLPurifier cache is stored in localcachedir
* allowobjectembed changes are not ignored any more
* the cache keys include revision and all options which makes
this suitable for local caches on cluster nodes
* unchanged test is replaced by "true" value which should
significantly improve performance
* removal of purge_all_caches() hack for directory recreation
* comments and coding style cleanup
Better performance, more reliable, completely self contained,
more validation and full backwards compatibility.
This will also allow us to implement ignoring of plugins.