Skip to content
Commits on Source (2)
...@@ -56,12 +56,7 @@ class DocumentManagement ...@@ -56,12 +56,7 @@ 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());
$document->setPlagscanId(0);
$document->setShareLink('');
}
$response = $documents->add($text, true); $response = $documents->add($text, true);
$document->setPlagscanId((int) $response['docID']); $document->setPlagscanId((int) $response['docID']);
$document->setPlagscanStatus('not_checked'); $document->setPlagscanStatus('not_checked');
...@@ -71,6 +66,7 @@ class DocumentManagement ...@@ -71,6 +66,7 @@ class DocumentManagement
$document->setShareLink(''); $document->setShareLink('');
$document->store(); $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,11 +77,7 @@ class DocumentManagement ...@@ -81,11 +77,7 @@ 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());
$document->setPlagscanId(0);
$document->setShareLink('');
}
$ex_submission = new ilExSubmission(new ilExAssignment($assignment_id), $user_id); $ex_submission = new ilExSubmission(new ilExAssignment($assignment_id), $user_id);
$files = $ex_submission->getFiles(); $files = $ex_submission->getFiles();
$file_info = end($files); $file_info = end($files);
...@@ -98,6 +90,7 @@ class DocumentManagement ...@@ -98,6 +90,7 @@ class DocumentManagement
$document->setShareLink(''); $document->setShareLink('');
$document->store(); $document->store();
} }
}
public static function handInAllDocumentAsFile($assignment_id): void public static function handInAllDocumentAsFile($assignment_id): void
{ {
...@@ -177,6 +170,7 @@ class DocumentManagement ...@@ -177,6 +170,7 @@ 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);
if ($document->getPlagscanStatus() === 'not_checked') {
$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/'));
$documents->check($document_id); $documents->check($document_id);
...@@ -184,6 +178,9 @@ class DocumentManagement ...@@ -184,6 +178,9 @@ class DocumentManagement
$document->setPlagscanStatus('in_progress'); $document->setPlagscanStatus('in_progress');
$document->store(); $document->store();
$logger->info('PSX: Document ' . $document_id . ' stored as in_progress'); $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']);
......