$do = "submitpaper"; } // Check that student has accepted disclaimer if applicable. if (empty($post['submissionagreement'])) { $_SESSION["notice"]["message"] = get_string('copyrightagreementerror', 'turnitintooltwo'); $error = true; $do = "submitpaper"; } if ($error) { // Save data in session incase of error $_SESSION['form_data']->submissiontype = $post['submissiontype']; $_SESSION['form_data']->submissiontitle = $post['submissiontitle']; $_SESSION['form_data']->submissiontext = $post['submissiontext']; } else { // Check for previous submission to this part. if (!($prevsubmission = $turnitintooltwoassignment->get_user_submissions($post['studentsname'], $turnitintooltwoassignment->turnitintooltwo->id, $post['submissionpart']))) { // Create submission object if not a previous one. $turnitintooltwosubmission = new turnitintooltwo_submission(0, "moodle", $turnitintooltwoassignment); if (!$turnitintooltwosubmission->create_submission($post)) { $_SESSION["notice"]["message"] = get_string('createsubmissionerror', 'turnitintooltwo'); $do = "submitpaper"; } } else { foreach ($prevsubmission as $prev) { $submission = $prev; } $turnitintooltwosubmission = new turnitintooltwo_submission($submission->id, "moodle", $turnitintooltwoassignment); $turnitintooltwosubmission->reset_submission($post); } if ($turnitintooltwosubmission) { if ($post['submissiontype'] == 1) {
} break; case "refresh_submission_row": if (!confirm_sesskey()) { throw new moodle_exception('invalidsesskey', 'error'); } $assignmentid = required_param('assignment', PARAM_INT); $turnitintooltwoassignment = new turnitintooltwo_assignment($assignmentid); $cm = get_coursemodule_from_instance("turnitintooltwo", $assignmentid); if (has_capability('mod/turnitintooltwo:read', context_module::instance($cm->id))) { $partid = required_param('part', PARAM_INT); $userid = required_param('user', PARAM_INT); $istutor = has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id)) ? true : false; $parts = $turnitintooltwoassignment->get_parts(); // Get the id of the submission in the row and update it from Turnitin then get the new details. $submission = $turnitintooltwoassignment->get_user_submissions($userid, $assignmentid, $partid); $submissionid = current(array_keys($submission)); if (!empty($submissionid)) { $submission = new turnitintooltwo_submission($submissionid); $submission->update_submission_from_tii(true); // Get the submission details again in case the submission has been transferred within Turnitin. $submission = $turnitintooltwoassignment->get_user_submissions($userid, $assignmentid, $partid); $submissionid = current(array_keys($submission)); } $submission = new turnitintooltwo_submission($submissionid); if (empty($submissionid)) { $user = new turnitintooltwo_user($userid, 'Learner', false); $submission->firstname = $user->firstname; $submission->lastname = $user->lastname; $submission->userid = $user->id; }
/** * Return a table containing all the assignments in the relevant course * * @global type $CFG * @global type $OUTPUT * @param obj $course the moodle course data * @return output */ public function show_assignments($course) { global $CFG, $OUTPUT, $USER; $turnitintooltwos = turnitintooltwo_assignment::get_all_assignments_in_course($course); $table = new html_table(); $table->id = "dataTable"; $rows = array(); // Do the table headers. $cells = array(); if ($course->format == "weeks") { $cells["weeks"] = new html_table_cell(get_string("week")); } else { if ($course->format == "topics") { $cells["topics"] = new html_table_cell(get_string("topic")); } } $cells["name"] = new html_table_cell(get_string("name")); $cells["start_date"] = new html_table_cell(get_string("dtstart", "turnitintooltwo")); $cells["number_of_parts"] = new html_table_cell(get_string("numberofparts", "turnitintooltwo")); $cells["submissions"] = new html_table_cell(get_string("submissions", "turnitintooltwo")); $table->head = $cells; $i = 1; foreach ($turnitintooltwos as $turnitintooltwo) { $cm = get_coursemodule_from_id('turnitintooltwo', $turnitintooltwo->coursemodule, $course->id); $turnitintooltwoassignment = new turnitintooltwo_assignment($turnitintooltwo->id, $turnitintooltwo); if ($course->format == "weeks" || $course->format == "topics") { $cells[$course->format] = new html_table_cell($turnitintooltwoassignment->turnitintooltwo->section); $cells[$course->format]->attributes["class"] = "centered_cell"; } // Show links dimmed if the mod is hidden. $attributes["class"] = !$turnitintooltwo->visible ? 'dimmed' : ''; $linkurl = $CFG->wwwroot . '/mod/turnitintooltwo/view.php?id=' . $turnitintooltwoassignment->turnitintooltwo->coursemodule . '&do=submissions'; $cells["name"] = new html_table_cell(html_writer::link($linkurl, $turnitintooltwo->name, $attributes)); $cells["start_date"] = new html_table_cell(userdate($turnitintooltwoassignment->get_start_date(), get_string('strftimedatetimeshort', 'langconfig'))); $cells["start_date"]->attributes["class"] = "centered_cell"; $cells["number_of_parts"] = new html_table_cell(count($turnitintooltwoassignment->get_parts())); $cells["number_of_parts"]->attributes["class"] = "centered_cell"; if (has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id))) { $noofsubmissions = $turnitintooltwoassignment->count_submissions($cm, 0); } else { $noofsubmissions = count($turnitintooltwoassignment->get_user_submissions($USER->id, $turnitintooltwoassignment->turnitintooltwo->id)); } $cells["submissions"] = new html_table_cell(html_writer::link($linkurl, $noofsubmissions, $attributes)); $cells["submissions"]->attributes["class"] = "centered_cell"; $rows[$i] = new html_table_row($cells); $i++; } $table->data = $rows; return $OUTPUT->box(html_writer::table($table), 'generalbox boxaligncenter'); }
/** * Get full submission details and work out overall grade * * @global type $DB * @param type $turnitintooltwoassignment * @param type $submission_id * @param type $id_type * @return type */ private function get_submission_details($idtype = "moodle", $turnitintooltwoassignment = "") { global $DB; if ($idtype == "moodle") { $condition = array("id" => $this->id); } else { $condition = array("submission_objectid" => $this->submission_objectid); } if ($submission = $DB->get_record('turnitintooltwo_submissions', $condition, '*', IGNORE_MULTIPLE)) { if (empty($turnitintooltwoassignment)) { $turnitintooltwoassignment = new turnitintooltwo_assignment($submission->turnitintooltwoid); $this->turnitintooltwoid = $turnitintooltwoassignment->turnitintooltwo->id; } if (count($turnitintooltwoassignment->get_parts() > 1)) { if ($submission->userid != 0) { $usersubmissions = $turnitintooltwoassignment->get_user_submissions($submission->userid, $submission->turnitintooltwoid); $useroverallgrade = $turnitintooltwoassignment->get_overall_grade($usersubmissions); if ($turnitintooltwoassignment->turnitintooltwo->grade == 0 or $useroverallgrade === '--') { $this->overall_grade = '--'; } else { if ($turnitintooltwoassignment->turnitintooltwo->grade < 0) { // Scale. $scale = $DB->get_record('scale', array('id' => $turnitintooltwoassignment->turnitintooltwo->grade * -1)); $scalearray = explode(",", $scale->scale); // Array is zero indexed, Scale positions are from 1 upward. $index = $useroverallgrade - 1; $this->overall_grade = $scalearray[$index]; } else { $this->overall_grade = round($useroverallgrade / $turnitintooltwoassignment->turnitintooltwo->grade * 100, 1) . '%'; } } } else { $this->overall_grade = '--'; } } foreach ($submission as $field => $value) { $this->{$field} = $value; } if ($submission->userid > 0) { $user = $DB->get_record('user', array('id' => $submission->userid), 'firstname, lastname'); $this->firstname = $user->firstname; $this->lastname = $user->lastname; $this->fullname = fullname($user); $this->nmoodle = 0; } else { $this->firstname = $submission->submission_nmfirstname; $this->lastname = $submission->submission_nmlastname; $tmpuser = new stdClass(); $tmpuser->firstname = $submission->submission_nmfirstname; $tmpuser->lastname = $submission->submission_nmlastname; $this->fullname = fullname($tmpuser); $this->nmoodle = 1; } } else { if ($idtype == "moodle") { turnitintooltwo_print_error('submissiongeterror', 'turnitintooltwo', null, null, __FILE__, __LINE__); } } }