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
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
When we have a pagination on grader page and search for user
that is not on first page, saving was throwing an error
since page didn't have enough data
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
If a link contains no text, the function or purpose of the link will not
be presented to the user. This can introduce confusion for keyboard and
screen reader users.
Added groupid to grade_plugin_return tracking, modified constructor
to use query params as defaults if passed-in params not supplied,
used groupid tracking in core reports.
grade_get_graded_users_select also fixed to use gpr (otherwise using
it breaks when course current group has changed between render and
submit).
Fixed coding style issue in gpr constructor & documented properties.
Added upgrade.txt noting gpr changes.
Acutally the necessary code was already there. There was just some
unnecessary code that was added with the issue number MDL-47746. I have
just stripped out the unused code, which fixes the bug where a missing
activity caused a fatal error.
The method blank_hidden_total_and_adjust_bounds() now checks for more
than just a grade change, and in that cause would hide the grade. We
added a condition to only hide the grade when it effectively changed,
not when its other properties have.
Changes include:
* Search for existing items to reduce DB queries in grade_category::aggregate_grades
* Comments improvements
* Move brackets to be part of lang string
* Convert aggregationhints to be a class variable instead of passing it around
Part of: MDL-46576
The code only needs the id column to perform its count. On courses with a lot of users
fetching the whole user record for them all easily adds up to several hundred MB of
memory.