Due to complex workshop upgrade path from 1.9 and missing calendar events
support in 2.x, the only safe way to get rid of potentially invalid
calendar events (such as those reported in MDL-26687) is to remove all
current workshop events and recreate them from scratch.
Note that most line changes in the patch are caused by the recent
changes in the XMLDB TEXT fields handling (no size specified now) and by
the change in the indentation.
On every invocation, the workshop will give its subplugins a chance to
to something useful. For now, we know that the scheduled allocator will
use it, no need to load other plugin types yet (until there will be a
real reason for it).
Re-using 'mod/workshop:viewauthornames' would not be a happy option here
because teacher would have to change local overrides every time when
they were closing or re-opening the workshop (if they wanted anonymous
assessment but non-anonymous hall of fame).
Because of a bug in Workshop upgrade code, multiple workshop course_modules can
potentially point to a single workshop instance. The chance is pretty low as in most cases,
the upgrade failed. But under certain circumstances, workshop could be upgraded with
this data integrity issue. We want to detect it now and let the admin know.
The field holds the name of the grading evaluation method recently used
for the workshop or the default one to be used. At the moment there are
no alternatives but 'best' plugin. But I want to have the field there
before 2.0 stable release and also want to include it in workshop
backups.
This table replaces the recently added workshop_evaluations and will
contain all grades aggregations done within a workshop activity. NULL
grades mean not aggregated yet.
Every dimension has to have its own ID so it may become itemid within
File API framework. Using the same model as we have with course modules
and module instances.
Also, removing some obsolete fields.
Initial sketches of random allocator. Refactoring of the rest of the
module here and there. Also, this commit removes trailing whitespace and
running empty lines.