/** * get_participant should return a summarised list of details if requested. */ public function test_get_participant_no_user() { global $DB; $this->resetAfterTest(true); $result = $this->create_assign_with_student_and_teacher(); $assignmodule = $result['assign']; $student = $result['student']; $teacher = $result['teacher']; $course = $result['course']; $context = context_course::instance($course->id); $teacherrole = $DB->get_record('role', array('shortname' => 'teacher')); // Create an assign instance to save a submission. set_config('submissionreceipts', 0, 'assign'); $cm = get_coursemodule_from_instance('assign', $assignmodule->id); $context = context_module::instance($cm->id); $assign = new assign($context, $cm, $course); $this->setUser($student); // Simulate a submission. $data = new stdClass(); $data->onlinetext_editor = array('itemid' => file_get_unused_draft_itemid(), 'text' => 'Student submission text', 'format' => FORMAT_MOODLE); $notices = array(); $assign->save_submission($data, $notices); $data = new stdClass(); $data->userid = $student->id; $assign->submit_for_grading($data, array()); $this->setUser($teacher); $result = mod_assign_external::get_participant($assignmodule->id, $student->id, false); $this->assertEquals($student->id, $result['id']); $this->assertEquals(fullname($student), $result['fullname']); $this->assertTrue($result['submitted']); $this->assertTrue($result['requiregrading']); $this->assertFalse($result['blindmarking']); // Make sure we don't get any additional info. $this->assertTrue(empty($result['user'])); }
/** * Submit the logged in users assignment for grading. * * @param int $assignmentid The id of the assignment * @return array of warnings to indicate any errors. * @since Moodle 2.6 */ public static function submit_for_grading($assignmentid, $acceptsubmissionstatement) { global $CFG, $USER; require_once "{$CFG->dirroot}/mod/assign/locallib.php"; $params = self::validate_parameters(self::submit_for_grading_parameters(), array('assignmentid' => $assignmentid, 'acceptsubmissionstatement' => $acceptsubmissionstatement)); $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST); $context = context_module::instance($cm->id); self::validate_context($context); $assignment = new assign($context, $cm, null); $warnings = array(); $data = new stdClass(); $data->submissionstatement = $params['acceptsubmissionstatement']; $notices = array(); if (!$assignment->submit_for_grading($data, $notices)) { $detail = 'User id: ' . $USER->id . ', Assignment id: ' . $params['assignmentid'] . ' Notices:' . implode(', ', $notices); $warnings[] = self::generate_warning($params['assignmentid'], 'couldnotsubmitforgrading', $detail); } return $warnings; }