Various re-factors over recent releases appear to have led to quite a
drift between actual functionality and what these scenarios assert for
imagined functionality. Page elements and content are referenced that
don't exist in multiple places.
Implement grade validation for numeric grade overrides by setting
the type attribute for the grade input to number and setting a min
and max attribute values. Submitting the form with invalid values
will trigger built-in validation of the inputs.
get_gradable_users now has extra param to retrieve only active
users. Grade reports hase their own grade_report::get_gradable_users
since they decided whether to inlcude active users from report preferences
* Add support for grade report plugins that define an
`editingmode_title` lang string. If the grade report plugin defines this
language string, it will be used for the page title's unique
identifying information when editing mode is turned on.
* Make the headings for the single view easier to read and understand
* When on editing mode, update the heading for the grade and user
screens to convey to the user that the page is currently on editing
mode. This is helpful for screen reader users as they can immediately
know the current display mode of the single view report page when this
gets read via the page title.
In certain scenarios, a user row can be the last row in the grader
report table. The current logic does not take this into account and
always pins the last row regardless of the type.
This change ensures that the last row is not a user row before executing
the logic responsible for pinning this row.
With the h2 heading not being rendered on the zero-state pages of the
Single view report, we need to increase the heading level of the
"Search for a user to view all their grades" and
"Select a grade item above" headings from h3 to h2.
In order to prevent rendering an empty heading <h2>, we need to make
sure that the $heading parameter passed to print_grade_page_head() is
not an empty string.
This is a hack since average is not correct for summary report
when we have suspended users. But since we don't want to change
display to user - it is set to match 4.1 behavior.
On grader report we include hidden grades in averages calculations.
On user report we don't include hidden grades. So to allow using of
calculate_averages it needs to be refactored for this case.
We also have to add group id param to calculate_average since for
grader report we calculate both overall average and group average
* Feature: We can use a minimum grade different than zero
- Use correct minimum input values.
- Use data generators for faster test execution.
* Scenario: Disable category overriding
- Use the field name to ensure that the correct field is being tested.