From 158fa900c3b6697bc6fb3982ecb1082ff02d45e8 Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Mon, 14 Aug 2017 18:37:41 +0200
Subject: [PATCH] Add admin stuff

---
 submissions/admin.py                          | 14 ++++++++++-
 submissions/models.py                         | 19 ++++++++++++---
 .../submissions/admin/plagiarism_report.html  | 23 ++++++++++++++++++-
 3 files changed, 51 insertions(+), 5 deletions(-)

diff --git a/submissions/admin.py b/submissions/admin.py
index 2d88cdc52..fc25f4403 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 21cf120c2..ecf413ab5 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 fb5280648..a9e057370 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 %}
-- 
GitLab