The original idea was to use the link in the row header (the activity
link). However, for both unified user experience and the overall patch
design reasons, I finally decided not to alter the activity link but to
append the analysis icon. The user experience should be the same as in
the grader report.
Both methods get_activity_link() and get_grade_analysis_url() now cache
the results of the check whether the activity module provides grade.php
or not. Previously, get_activity_link() called file_exists() in every
call and get_grade_analysis_url() did not check the existence at all.
Note that this solution is still sub-optimal as apparently both methods
do very similar job. This should be refactored one day by a brave
developer who works on gradebook. Meanwhile, even this suboptimal
solution is more effective than the previous one for most courses.
- If a used rubric being updated, teacher (moderator) is notified
- If the changes are significant, all instances automatically marked for regrade
- if the changes are minor (texts, options or sortorder), teacher can choose whether to mark for regrade or not
- The instances marked for regrade can be re-graded but students are not able to see the rubric
- when grading a message appears if the instance is marked for regrade and is not visible to students
If the target area already contains a form, we can't pick anything to
use there. If the user works in two windows or there are several
teachers modifying the same course, it can happen that the form suddenly
appears in the target area while we have the form picker still open. In
such case, we simply redirects the user to the target area instead of
displaying the pooky exception.
When grade analysis link is enabled, an icon is displayed next to each
grade of a module that supports grade.php file. The parameters needed to
identify the particular user and grade are passed to the grade.php
script.
The activity module must have a chance to display appropriate grades
report per itemnumber. Most activity modules have just one grade items
si they can ignore the param. Complex modules like the Workshop need this.
The patch introduces a new field 'timecopied' that holds the timestamp
of when the given form was cloned last time. Using this field, we can
decide whether the form can be actually re-shared or not.
Note that the logic just hides the icon. It is meant as a usability
feature, not any real protection from sharing.
There is a new capability to manage all shared templates. Without this
capability, the user is allowed to delete just templates they previously
shared.
In the future, an option to edit the template directly might be added.
At the moment, the workaround is to pick the template into a temporary
assignment, edit it there and re-save it as a new template.
Every grading form can be basically in either DRAFT state (currently
being edited) or READY state (available for usage). For shared
templates, the status is not relevant at the moment and they are
automatically in the READY state.