Skip to content
Commits on Source (2)
......@@ -56,20 +56,16 @@ class DocumentManagement
$settings = new ilSetting('psx');
$documents = new Documents($settings->get('psx_server', 'https://api.plagscan.com/'));
if ($document->getId() !== 0) {
$documents->delete($document->getPlagscanId());
$document->setPlagscanId(0);
if ($document->getPlagscanStatus() === '') {
$response = $documents->add($text, true);
$document->setPlagscanId((int) $response['docID']);
$document->setPlagscanStatus('not_checked');
$document->setAssignmentExcObj(ilObject::_lookupObjectId((int) $DIC->http()->request()->getQueryParams()['ref_id']));
$document->setUserNonConsent(false);
$document->setSubmissionIliasId(0);
$document->setShareLink('');
$document->store();
}
$response = $documents->add($text, true);
$document->setPlagscanId((int) $response['docID']);
$document->setPlagscanStatus('not_checked');
$document->setAssignmentExcObj(ilObject::_lookupObjectId((int) $DIC->http()->request()->getQueryParams()['ref_id']));
$document->setUserNonConsent(false);
$document->setSubmissionIliasId(0);
$document->setShareLink('');
$document->store();
}
public static function handInDocumentAsFile(int $user_id, int $assignment_id): void
......@@ -81,22 +77,19 @@ class DocumentManagement
$settings = new ilSetting('psx');
$documents = new Documents($settings->get('psx_server', 'https://api.plagscan.com/'));
if ($document->getId() !== 0) {
$documents->delete($document->getPlagscanId());
$document->setPlagscanId(0);
if ($document->getPlagscanStatus() === '') {
$ex_submission = new ilExSubmission(new ilExAssignment($assignment_id), $user_id);
$files = $ex_submission->getFiles();
$file_info = end($files);
$response = $documents->add($file_info['filename'], false);
$document->setPlagscanId((int) $response['docID']);
$document->setPlagscanStatus('not_checked');
$document->setAssignmentExcObj(ilObject::_lookupObjectId((int) $DIC->http()->request()->getQueryParams()['ref_id']));
$document->setUserNonConsent(false);
$document->setSubmissionIliasId(0);
$document->setShareLink('');
$document->store();
}
$ex_submission = new ilExSubmission(new ilExAssignment($assignment_id), $user_id);
$files = $ex_submission->getFiles();
$file_info = end($files);
$response = $documents->add($file_info['filename'], false);
$document->setPlagscanId((int) $response['docID']);
$document->setPlagscanStatus('not_checked');
$document->setAssignmentExcObj(ilObject::_lookupObjectId((int) $DIC->http()->request()->getQueryParams()['ref_id']));
$document->setUserNonConsent(false);
$document->setSubmissionIliasId(0);
$document->setShareLink('');
$document->store();
}
public static function handInAllDocumentAsFile($assignment_id): void
......@@ -177,13 +170,17 @@ class DocumentManagement
$logger->info('PSX: Manual checking requested for docID ' . $document_id);
$document = new Document();
$document->getByPlagScanId($document_id);
$settings = new ilSetting('psx');
$documents = new Documents($settings->get('psx_server', 'https://api.plagscan.com/'));
$documents->check($document_id);
$logger->info('PSX: Manual check-call complete, storing document status');
$document->setPlagscanStatus('in_progress');
$document->store();
$logger->info('PSX: Document ' . $document_id . ' stored as in_progress');
if ($document->getPlagscanStatus() === 'not_checked') {
$settings = new ilSetting('psx');
$documents = new Documents($settings->get('psx_server', 'https://api.plagscan.com/'));
$documents->check($document_id);
$logger->info('PSX: Manual check-call complete, storing document status');
$document->setPlagscanStatus('in_progress');
$document->store();
$logger->info('PSX: Document ' . $document_id . ' stored as in_progress');
} else {
$logger->info('PSX: Document not uploaded, already in_progress or finished');
}
}
public static function updateDocumentStatus(int $document_id): void
......
......@@ -481,13 +481,7 @@ class AssignmentTableGUI extends ilParticipantsPerAssignmentTableGUI
$submission = $a_row['submission_obj'];
$plugin = ilPlagScanExercisePlugin::getInstance();
if (
$plagscan_config->getActivation() &&
!(
$document->getPlagscanStatus() === 'in_progress' ||
$document->getPlagscanStatus() === ''
)
) {
if ($plagscan_config->getActivation() && $document->getPlagscanStatus() === 'not_checked') {
$this->ctrl->clearParametersByClass('ilExerciseManagementGUI');
$this->ctrl->setParameterByClass('ilExerciseManagementGUI', 'chkdoc', $document->getPlagscanId());
$actions->addItem(
......
......@@ -135,19 +135,12 @@ class ilPlagScanExerciseUIHookGUI extends ilUIHookPluginGUI
($DIC->ctrl()->getCmd() === 'members' || $DIC->ctrl()->getCmd() === 'selectAssignment')
) {
$GLOBALS['PLX_IN_EXEC2'] = true;
if (isset($get['chkdoc'])) {
DocumentManagement::checkDocument((int) $get['chkdoc']);
}
if (isset($get['subdoc_usr'])) {
DocumentManagement::handInDocumentAsFile((int) $get['subdoc_usr'], (int) $get['subdoc_ass']);
}
if (isset($get['subdoc_all'])) {
DocumentManagement::handInAllDocumentAsFile((int) $get['subdoc_all']);
}
if (isset($get['chkdoc_all'])) {
DocumentManagement::checkAllDocumentsForAssignment((int) $get['chkdoc_all']);
}
if (isset($get['subchk_all'])) {
DocumentManagement::handInAllDocumentAsFile((int) $get['subchk_all']);
DocumentManagement::checkAllDocumentsForAssignment((int) $get['subchk_all']);
......