I noticed we do not need to list the names of potentially affected
reviewers. If the user (teacher) has the capability to see other
assessments (which they do in 99%), the list of assessments is displayed
at the confirmation page anyway. If for some reason they do not have the
capability, we should not list the names.
The second fix is that the action buttons (such as Delete or Edit) are
not displayed on the removal confirmation page.
And finally, as the output->confirm() wraps the message with implicit
<p>, it is not valid to pass HTML with any block elements. So instead of
concatenating the two messages, we simply define a new string for this
situation.
A new capability is introduced to control this, granted to teacher/admin
roles by default: mod/workshop:deletesubmissions. Additionally, students
can delete their own submissions if they are currently able to edit them.
This patch adds a new report to be displayed during the submission
phase. The report displays all participants who are supposed to submit
their work into the workshop and the status of their submission.
This is built upon original work by Michael Hughes. We now have separate
settings for deleting workshop submissions, assessments and for resetting the
workshop phase.
Example submissions settings moved into a dedicated section.
Self-assessment setting moved to the assessment section. There is no
need for the dedicated Workshop features section any more. All Workshop
feedback settings moved into a dedicated section.
Reorganised grading settings - the grading strategy put into the top
place as it is the essential setting. All other three settings are
related to calculating actual grades.
No advanced setting fields in the Workshop form. Mixing collapsible
sections with advanced fields (that are not even marked as "advanced"
any more) does not work well.
AMOS BEGIN
CPY [feedback,mod_assign],[feedbacksettings,mod_workshop]
AMOS END
The assessment form can be displayed as editable or read-only (frozen).
Neither the editor element nor the filemanager element support
displaying frozen content themselves so we need to pre-format and inject
static texts.
The list of attachments should be ideally generated by the renderer and
probably improved a bit - just quick and dirty solution must be enough
for now though (2.5 coding freeze is just behind the corner...).
AMOS BEGIN
CPY [submissionattachment,mod_workshop],[feedbackauthorattachment,mod_workshop]
AMOS END
Three new fields are added into the into the Assessment settings section
of the form. The default value for the overallfeedbackmaxbytes is the
same as the maximum size for submission attachments (which seems to be a
reasonable value). If there is a demand and a strong use case, these
values can became per-site configurable (I can see no big benefit of
doing so right now).
AMOS BEGIN
CPY [maxbytes,mod_workshop],[overallfeedbackmaxbytes,mod_workshop]
AMOS END
The button is displayed only when there is a pending (that is not
assessed yet) submission to assess.
AMOS BEGIN
CPY [savenext,mod_assign],[saveandshownext,mod_workshop]
AMOS END
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