From 0ee25e0522dfb421d86b6c4bf0d130ffd00d53d2 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Mon, 28 Oct 2019 11:54:55 +0100
Subject: [PATCH] Debug withdraw manuscript form

---
 submissions/forms.py  | 13 ++++++++-----
 submissions/models.py |  4 +++-
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/submissions/forms.py b/submissions/forms.py
index eb582fe3f..f6374b473 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -823,18 +823,21 @@ class WithdrawSubmissionForm(forms.Form):
                 status=STATUS_COMPLETED)
 
             # Deprecate any outstanding recommendations
-            EICRecommendation.objects.filter(submission=self.submission).active().update(
-                status=DEPRECATED)
-            self.submission.refresh_from_db()
+            if EICRecommendation.objects.filter(submission=self.submission).exists():
+                EICRecommendation.objects.filter(submission=self.submission).active().update(
+                    status=DEPRECATED)
 
             # Update editorial decision
-            EditorialDecision.objects.filter(submission=self.submission).last().update(
-                status=EditorialDecision.PUBOFFER_REFUSED_BY_AUTHORS)
+            if EditorialDecision.objects.filter(submission=self.submission).exists():
+                EditorialDecision.objects.filter(submission=self.submission).last().update(
+                    status=EditorialDecision.PUBOFFER_REFUSED_BY_AUTHORS)
 
             # Delete any production stream
             if self.submission.production_stream:
                 self.submission.production_stream.delete()
 
+            self.submission.refresh_from_db()
+
         return self.submission
 
 
diff --git a/submissions/models.py b/submissions/models.py
index 95c831ed8..08a0f0340 100644
--- a/submissions/models.py
+++ b/submissions/models.py
@@ -413,7 +413,9 @@ class Submission(models.Model):
     @property
     def editorial_decision(self):
         """Returns the EditorialDecision (if exists and not deprecated)."""
-        return self.editorialdecision_set.last()
+        if self.editorialdecision_set.exists():
+            return self.editorialdecision_set.last()
+        return None
 
 
 class SubmissionEvent(SubmissionRelatedObjectMixin, TimeStampedModel):
-- 
GitLab