/** * Render all grading CTAs for markers * @return string */ protected function render_grading() { global $USER, $OUTPUT; if (!$this->feedback_toggle_enabled()) { return ''; } $courseids = local::gradeable_courseids($USER->id); if (empty($courseids)) { return ''; } $gradingheading = get_string('grading', 'theme_snap'); $o = "<h2>{$gradingheading}</h2>"; $o .= '<div id="snap-personal-menu-grading"></div>'; return $o; }
/** * Test gradeable_courseids function - i.e. courses where user is allowed to view the grade book. */ public function test_gradeable_courseids() { global $DB; $this->resetAfterTest(); $generator = $this->getDataGenerator(); $course1 = $generator->create_course(); $course2 = $generator->create_course((object) ['visible' => 0, 'oldvisible' => 0]); $teacher = $generator->create_user(); // Enrol teacher as teacher on course1. $teacherrole = $DB->get_record('role', array('shortname' => 'teacher')); $this->getDataGenerator()->enrol_user($teacher->id, $course1->id, $teacherrole->id); // Enrol teacher as student on course2. $studentrole = $DB->get_record('role', array('shortname' => 'student')); $this->getDataGenerator()->enrol_user($teacher->id, $course2->id, $studentrole->id); // Check teacher can only grade 1 course (not a teacher on course2). $gradeablecourses = local::gradeable_courseids($teacher->id); $this->assertCount(1, $gradeablecourses); }