/** * Test the get graders helper method. */ public function test_graders() { $this->resetAfterTest(); // Making the setup. $c1 = $this->getDataGenerator()->create_course(); $c2 = $this->getDataGenerator()->create_course(); $c1m1 = $this->getDataGenerator()->create_module('assign', array('course' => $c1)); $c2m1 = $this->getDataGenerator()->create_module('assign', array('course' => $c2)); // Users. $u1 = $this->getDataGenerator()->create_user(array('firstname' => 'Eric', 'lastname' => 'Cartman')); $u2 = $this->getDataGenerator()->create_user(array('firstname' => 'Stan', 'lastname' => 'Marsh')); $u3 = $this->getDataGenerator()->create_user(array('firstname' => 'Kyle', 'lastname' => 'Broflovski')); $u4 = $this->getDataGenerator()->create_user(array('firstname' => 'Kenny', 'lastname' => 'McCormick')); // Creating grade history for some users. $gi = grade_item::fetch(array('iteminstance' => $c1m1->id, 'itemtype' => 'mod', 'itemmodule' => 'assign')); $this->create_grade_history(array('itemid' => $gi->id, 'userid' => $u1->id, 'usermodified' => $u1->id)); $this->create_grade_history(array('itemid' => $gi->id, 'userid' => $u1->id, 'usermodified' => $u2->id)); $this->create_grade_history(array('itemid' => $gi->id, 'userid' => $u1->id, 'usermodified' => $u3->id)); $gi = grade_item::fetch(array('iteminstance' => $c2m1->id, 'itemtype' => 'mod', 'itemmodule' => 'assign')); $this->create_grade_history(array('itemid' => $gi->id, 'userid' => $u1->id, 'usermodified' => $u4->id)); // Checking fetching some users. $graders = \gradereport_history\helper::get_graders($c1->id); $this->assertCount(4, $graders); // Including "all graders" . $this->assertArrayHasKey($u1->id, $graders); $this->assertArrayHasKey($u2->id, $graders); $this->assertArrayHasKey($u3->id, $graders); $graders = \gradereport_history\helper::get_graders($c2->id); $this->assertCount(2, $graders); // Including "all graders" . $this->assertArrayHasKey($u4->id, $graders); }
$filters = (array) $data; if (!empty($filters['datetill'])) { $filters['datetill'] += DAYSECS - 1; // Set to end of the chosen day. } } else { $filters = array('id' => $courseid, 'userids' => optional_param('userids', '', PARAM_SEQUENCE), 'itemid' => optional_param('itemid', 0, PARAM_INT), 'grader' => optional_param('grader', 0, PARAM_INT), 'datefrom' => optional_param('datefrom', 0, PARAM_INT), 'datetill' => optional_param('datetill', 0, PARAM_INT), 'revisedonly' => optional_param('revisedonly', 0, PARAM_INT)); } $table = new \gradereport_history\output\tablelog('gradereport_history', $context, $url, $filters, $download, $page); $names = array(); foreach ($table->get_selected_users() as $key => $user) { $names[$key] = fullname($user); } $filters['userfullnames'] = implode(',', $names); // Set up js. \gradereport_history\helper::init_js($course->id, $names); // Now that we have the names, reinitialise the button so its able to control them. $button = new \gradereport_history\output\user_button($PAGE->url, get_string('selectusers', 'gradereport_history'), 'get'); $userbutton = $output->render($button); $params = array('course' => $course, 'itemids' => $itemids, 'graders' => $graders, 'userbutton' => $userbutton); $mform = new \gradereport_history\filter_form(null, $params); $mform->set_data($filters); if ($table->is_downloading()) { // Download file and exit. \core\session\manager::write_close(); echo $output->render($table); die; } // Print header. print_grade_page_head($COURSE->id, 'report', 'history', get_string('pluginname', 'gradereport_history'), false, ''); $mform->display();
$page = optional_param('page', 0, PARAM_INT); $course = $DB->get_record('course', array('id' => $id), '*', MUST_EXIST); $context = context_course::instance($course->id, MUST_EXIST); if ($course->id == SITEID) { throw new moodle_exception('invalidcourse'); } require_sesskey(); require_login($course); require_capability('gradereport/history:view', $context); require_capability('moodle/grade:viewall', $context); $outcome = new stdClass(); $outcome->success = true; $outcome->error = ''; $users = \gradereport_history\helper::get_users($context, $search, $page, 25); $outcome->response = array('users' => array()); $outcome->response['totalusers'] = \gradereport_history\helper::get_users_count($context, $search); $extrafields = get_extra_user_fields($context); $useroptions = array('link' => false, 'visibletoscreenreaders' => false); // Format the user record. foreach ($users as $user) { $newuser = new stdClass(); $newuser->userid = $user->id; $newuser->picture = $OUTPUT->user_picture($user, $useroptions); $newuser->fullname = fullname($user); $fieldvalues = array(); foreach ($extrafields as $field) { $fieldvalues[] = s($user->{$field}); } $newuser->extrafields = implode(', ', $fieldvalues); $outcome->response['users'][] = $newuser; }