コード例 #1
0
 /**
  * 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']));
 }
コード例 #2
0
ファイル: externallib.php プロジェクト: rushi963/moodle
 /**
  * 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;
 }