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