From now on, the evaluator's method get_settings_form() should return a
subclass of workshop_evaluation_settings_form. The evaluation subplugins
are expected to use the define_sub() method to add their own fields into
the base form, although they can override the main define() method, too.
The former interface workshop_evaluation has been refactored into a
superclass with abstract methods which seems to be more robust.
Oh, by the way, I'm in Perth - yay!
AMOS BEGIN
MOV [settings,workshopeval_best],[evaluationsettings,mod_workshop]
AMOS END
Teachers can now choose the actual grading evaluation method to use
during the grading evaluation phase. The workshopeval_best is still used
as the default one (this may be made configurable later, although there
is no big benefit of it).
Thanks to Mary Cooch & Martin Dougiamas who contributed to this
rewording.
AMOS BEGIN
REM These module help texts are going to be displayed more prominently in the Moodle interface
AMOS END
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.
The idea is to build a plugin that will internally call the random
allocator when the submissions deadline is reached. The teacher is able
to pre-define the configuration for the random allocator.
The method user_picture::fields() was not available when these SQL
statements were originally written. Now instead of hard-coding the list
of returned fields, the user_picture is asked for the list.
Together with this change, methods workshop::get_submission_by_id()
and workshop::get_submission_by_author() now return the information
about the user who provided the feedback and overwrote the grade.
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
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).
If a user is allowed to allocate a submission to herself for assessment,
there is now a button that she can press to immediately allocate and
assess the submission.
This patch also contains various cleanups spotted during the work.