mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 04:52:36 +02:00
MDL-76445 gradereport_singleview: Deprecate load_users()
Replaces current usages of \gradereport_singleview\local\screen::load_users() with get_gradable_users() and deprecates load_users(). The only remaining calls of this method are unit test related.
This commit is contained in:
parent
41ec352b36
commit
c95c632764
@ -151,7 +151,7 @@ class grade extends tablelike implements selectable_items, filterable_items {
|
||||
*/
|
||||
public function init($selfitemisempty = false) {
|
||||
|
||||
$this->items = $this->load_users();
|
||||
$this->items = get_gradable_users($this->courseid, $this->groupid);
|
||||
$this->totalitemcount = count($this->items);
|
||||
|
||||
if ($selfitemisempty) {
|
||||
|
@ -405,28 +405,15 @@ abstract class screen {
|
||||
|
||||
/**
|
||||
* Load a valid list of users for this gradebook as the screen "items".
|
||||
* @return array $users A list of enroled users.
|
||||
*
|
||||
* @deprecated since Moodle 4.3
|
||||
* @return array A list of enroled users.
|
||||
*/
|
||||
protected function load_users(): array {
|
||||
global $CFG;
|
||||
debugging('The function ' . __FUNCTION__ . '() is deprecated. Please use get_gradable_users() instead.',
|
||||
DEBUG_DEVELOPER);
|
||||
|
||||
// Create a graded_users_iterator because it will properly check the groups etc.
|
||||
$defaultgradeshowactiveenrol = !empty($CFG->grade_report_showonlyactiveenrol);
|
||||
$showonlyactiveenrol = get_user_preferences('grade_report_showonlyactiveenrol', $defaultgradeshowactiveenrol);
|
||||
$showonlyactiveenrol = $showonlyactiveenrol || !has_capability('moodle/course:viewsuspendedusers', $this->context);
|
||||
|
||||
require_once($CFG->dirroot.'/grade/lib.php');
|
||||
$gui = new \graded_users_iterator($this->course, null, $this->groupid);
|
||||
$gui->require_active_enrolment($showonlyactiveenrol);
|
||||
$gui->init();
|
||||
|
||||
// Flatten the users.
|
||||
$users = [];
|
||||
while ($user = $gui->next_user()) {
|
||||
$users[$user->user->id] = $user->user;
|
||||
}
|
||||
$gui->close();
|
||||
return $users;
|
||||
return get_gradable_users($this->courseid, $this->groupid);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,7 +102,7 @@ class user extends tablelike implements selectable_items {
|
||||
public function init($selfitemisempty = false) {
|
||||
|
||||
if (!$selfitemisempty) {
|
||||
$validusers = $this->load_users();
|
||||
$validusers = get_gradable_users($this->courseid, $this->groupid);
|
||||
if (!isset($validusers[$this->itemid])) {
|
||||
// If the passed user id is not valid, show the first user from the list instead.
|
||||
$this->item = reset($validusers);
|
||||
|
@ -63,11 +63,13 @@ class screen_test extends \advanced_testcase {
|
||||
grade_regrade_final_grades($course->id);
|
||||
$screentest = new gradereport_singleview_screen_testable($course->id, 0, $group->id);
|
||||
$groupusers = $screentest->test_load_users();
|
||||
$this->assertDebuggingCalled('The function load_users() is deprecated. Please use get_gradable_users() instead.');
|
||||
$this->assertCount(2, $groupusers);
|
||||
|
||||
// Now, let's suspend the enrolment of a user. Should return only one user.
|
||||
$this->getDataGenerator()->enrol_user($user2->id, $course->id, $roleteacher->id, 'manual', 0, 0, ENROL_USER_SUSPENDED);
|
||||
$users = $screentest->test_load_users();
|
||||
$this->assertDebuggingCalled('The function load_users() is deprecated. Please use get_gradable_users() instead.');
|
||||
$this->assertCount(1, $users);
|
||||
|
||||
// Change the viewsuspendedusers capabilities and set the user preference to display suspended users.
|
||||
@ -77,6 +79,7 @@ class screen_test extends \advanced_testcase {
|
||||
$this->setUser($teacher);
|
||||
$screentest = new gradereport_singleview_screen_testable($course->id, 0, $group->id);
|
||||
$users = $screentest->test_load_users();
|
||||
$this->assertDebuggingCalled('The function load_users() is deprecated. Please use get_gradable_users() instead.');
|
||||
$this->assertCount(2, $users);
|
||||
|
||||
// Change the capability again, now the user can't see the suspended enrolments.
|
||||
@ -84,11 +87,13 @@ class screen_test extends \advanced_testcase {
|
||||
set_user_preference('grade_report_showonlyactiveenrol', false, $teacher);
|
||||
accesslib_clear_all_caches_for_unit_testing();
|
||||
$users = $screentest->test_load_users();
|
||||
$this->assertDebuggingCalled('The function load_users() is deprecated. Please use get_gradable_users() instead.');
|
||||
$this->assertCount(1, $users);
|
||||
|
||||
// Now, activate the user enrolment again. We shall get 2 users now.
|
||||
$this->getDataGenerator()->enrol_user($user2->id, $course->id, $roleteacher->id, 'manual', 0, 0, ENROL_USER_ACTIVE);
|
||||
$users = $screentest->test_load_users();
|
||||
$this->assertDebuggingCalled('The function load_users() is deprecated. Please use get_gradable_users() instead.');
|
||||
$this->assertCount(2, $users);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ information provided here is intended especially for developers.
|
||||
|
||||
=== 4.3 ===
|
||||
|
||||
* The load_users() method in the gradereport_singleview\local\screen class has been deprecated. Please use
|
||||
get_gradable_users() instead.
|
||||
* The \gradereport_singleview\local\screen\select has been deprecated. This class generates the output for the initial
|
||||
view to select the single view item type (user or grade item) which is no longer actively used as we do not provide
|
||||
direct links to it.
|
||||
|
Loading…
x
Reference in New Issue
Block a user