From a9f63b7ac152ad0d3b3e6da1df7a7a990c8a8d02 Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Tue, 29 Aug 2017 12:36:02 +0200
Subject: [PATCH] Ithenticate try 8

---
 submissions/forms.py | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/submissions/forms.py b/submissions/forms.py
index 8a89f02ff..33d4ebb5d 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -679,17 +679,21 @@ class iThenticateReportForm(forms.ModelForm):
     def save(self, *args, **kwargs):
         data = self.response['data'][0]
 
-        report, __ = iThenticateReport.objects.get_or_create(doc_id=data['id'])
-
-        try:
-            report.uploaded_time = data['uploaded_time']
-            report.processed_time = data['processed_time']
-            report.percent_match = data['percent_match']
-        except KeyError:
-            pass
-        report.save()
-        self.submission.plagiarism_report = report
-        self.submission.save()
+        report, created = iThenticateReport.objects.get_or_create(doc_id=data['id'])
+
+        if not created:
+            try:
+                iThenticateReport.objects.filter(doc_id=data['id']).update(
+                    uploaded_time=data['uploaded_time'],
+                    processed_time=data['processed_time'],
+                    percent_match=data['percent_match']
+                )
+            except KeyError:
+                pass
+        else:
+            report.save()
+            self.submission.plagiarism_report = report
+            self.submission.save()
         return report
 
     def call_ithenticate(self):
-- 
GitLab