diff --git a/submissions/admin.py b/submissions/admin.py index 2d88cdc52264761d1405028e361c86c7ec52982f..fc25f4403c9257f32a0c62e048c1ea10d0398310 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -6,7 +6,8 @@ from guardian.admin import GuardedModelAdmin from comments.models import Comment from submissions.models import Submission, EditorialAssignment, RefereeInvitation, Report,\ - EditorialCommunication, EICRecommendation, SubmissionEvent + EditorialCommunication, EICRecommendation, SubmissionEvent,\ + iThenticateReport from scipost.models import Contributor @@ -18,6 +19,17 @@ def submission_short_title(obj): return obj.submission.title[:30] +class iThenticateReportAdmin(admin.ModelAdmin): + readonly_fields = ['doc_id'] + + def has_add_permission(self, request): + """ Don't add manually. This will gives conflict with the iThenticate db. """ + return False + + +admin.site.register(iThenticateReport, iThenticateReportAdmin) + + class SubmissionAdminForm(forms.ModelForm): authors = forms.ModelMultipleChoiceField( required=False, diff --git a/submissions/models.py b/submissions/models.py index 21cf120c2841a94791c228217ef561534b14a15b..ecf413ab5d7886dfc277586dea13dfe891047b01 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -506,10 +506,23 @@ class iThenticateReport(TimeStampedModel): doc_id = models.IntegerField(primary_key=True) percent_match = models.IntegerField(null=True, blank=True) + class Meta: + verbose_name = 'iThenticate Report' + verbose_name_plural = 'iThenticate Reports' + def get_absolute_url(self): - return reverse('submissions:plagiarism', kwargs={ - 'arxiv_identifier_w_vn_nr': - self.to_submission.arxiv_identifier_w_vn_nr}) + if hasattr(self, 'to_submission'): + return reverse('submissions:plagiarism', kwargs={ + 'arxiv_identifier_w_vn_nr': + self.to_submission.arxiv_identifier_w_vn_nr}) + return None + + def __str__(self): + _str = 'Report {doc_id}'.format(doc_id=self.doc_id) + if hasattr(self, 'to_submission'): + _str += ' on Submission {arxiv}'.format( + arxiv=self.to_submission.arxiv_identifier_w_vn_nr) + return _str @property def score(self): diff --git a/submissions/templates/submissions/admin/plagiarism_report.html b/submissions/templates/submissions/admin/plagiarism_report.html index fb528064830d7e339e07a046505ee7f9e282702a..a9e0573701f2e318fca045bbfdaf03bd1c99263d 100644 --- a/submissions/templates/submissions/admin/plagiarism_report.html +++ b/submissions/templates/submissions/admin/plagiarism_report.html @@ -15,7 +15,28 @@ <h2>{{submission.title}}</h2> <h3 class="mb-4">by {{submission.author_list}}</h3> {% if submission.plagiarism_report %} - {{submission.plagiarism_report}} + <table> + <tr> + <td style="min-width: 150px;">iThenticate document</td> + <td>{{submission.plagiarism_report.doc_id}}</td> + </tr> + <tr> + <td>Percent match</td> + <td>{{submission.plagiarism_report.percent_match}}</td> + </tr> + <tr> + <td>Processed</td> + <td>{{submission.plagiarism_report.processed_time}}</td> + </tr> + <tr> + <td>Uploaded</td> + <td>{{submission.plagiarism_report.uploaded_time}}</td> + </tr> + <tr> + <td>Latest update</td> + <td>{{submission.plagiarism_report.latest_activity}}</td> + </tr> + </table> {% else %} No Plagiarism Report found. {% endif %}