function plagiarism_urkund_send_files() { global $DB; $plagiarismsettings = plagiarism_plugin_urkund::get_settings(); if (!empty($plagiarismsettings)) { // Get all files in a pending state. $plagiarismfiles = $DB->get_records("plagiarism_urkund_files", array("statuscode" => "pending")); foreach ($plagiarismfiles as $pf) { // Check to make sure cm exists. - delete record if cm has been deleted. $sql = "SELECT m.name\n FROM {modules} m\n JOIN {course_modules} cm ON cm.module = m.id\n WHERE cm.id = ?"; $modulename = $DB->get_field_sql($sql, array($pf->cm)); if (empty($modulename)) { // The coursemodule related to this file has been deleted, delete the urkund entry. mtrace("URKUND fileid:{$pf->id} Course module id:" . $pf->cm . " does not exist, deleting record"); $DB->delete_records('plagiarism_urkund_files', array('id' => $pf->id)); continue; } mtrace("URKUND fileid:" . $pf->id . ' sending for processing'); $file = plagiarism_urkund_get_file_object($pf); if (empty($file)) { mtrace("URKUND fileid:{$pf->id} File not found, this may have been replaced by a newer file - deleting record"); if (debugging()) { mtrace(plagiarism_urkund_pretty_print($pf)); } $DB->delete_records('plagiarism_urkund_files', array('id' => $pf->id)); continue; } if ($modulename == "assign") { // Check for group assignment and adjust userid if required. // This prevents subsequent group submissions from flagging a previous submission as a match. $pf = plagiarism_urkund_check_group($pf); } urkund_send_file_to_urkund($pf, $plagiarismsettings, $file); } } }
} } else { if ($resetuser == 2 && $id && confirm_sesskey()) { $plagiarismfile = $DB->get_record('plagiarism_urkund_files', array('id' => $id), '*', MUST_EXIST); $file = urkund_get_score(plagiarism_plugin_urkund::get_settings(), $plagiarismfile, true); // Reset attempts as this was a manual check. $file->attempt = $file->attempt - 1; $DB->update_record('plagiarism_urkund_files', $file); if ($file->statuscode == URKUND_STATUSCODE_ACCEPTED) { echo $OUTPUT->notification(get_string('scorenotavailableyet', 'plagiarism_urkund')); } else { if ($file->statuscode == URKUND_STATUSCODE_PROCESSED || $file->statuscode == 'Analyzed') { echo $OUTPUT->notification(get_string('scoreavailable', 'plagiarism_urkund')); } else { echo $OUTPUT->notification(get_string('unknownwarning', 'plagiarism_urkund')); echo plagiarism_urkund_pretty_print($file); } } } } if (!empty($delete) && confirm_sesskey()) { $DB->delete_records('plagiarism_urkund_files', array('id' => $id)); echo $OUTPUT->notification(get_string('filedeleted', 'plagiarism_urkund')); } } // Now show files in an error state. $userfields = get_all_user_name_fields(true, 'u'); $sqlallfiles = "SELECT t.*, " . $userfields . ", m.name as moduletype, " . "cm.course as courseid, cm.instance as cminstance FROM " . "{plagiarism_urkund_files} t, {user} u, {modules} m, {course_modules} cm " . "WHERE m.id=cm.module AND cm.id=t.cm AND t.userid=u.id " . "AND t.statuscode <> 'Analyzed' "; $sqlcount = "SELECT COUNT(id) FROM {plagiarism_urkund_files} WHERE statuscode <> 'Analyzed'"; $count = $DB->count_records_sql($sqlcount); if (!$showall && !$table->is_downloading()) {