From c4b022670f8ab4ddfb41298c13bf8d839e91b26b Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Thu, 14 Jun 2018 15:22:01 +0200
Subject: [PATCH] Fix EIC assigned on rejection

---
 submissions/forms.py | 61 ++++++++++++++++++++++----------------------
 1 file changed, 31 insertions(+), 30 deletions(-)

diff --git a/submissions/forms.py b/submissions/forms.py
index 90ca3abf9..7cf8bb5e7 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -551,39 +551,40 @@ class EditorialAssignmentForm(forms.ModelForm):
         self.instance.to = self.request.user.contributor
         recommendation = super().save()  # Save already, in case it's a new recommendation.
 
-        if self.is_normal_cycle():
-            # Default Refereeing process!
-
-            deadline = timezone.now() + datetime.timedelta(days=28)
-            if recommendation.submission.submitted_to_journal == 'SciPostPhysLectNotes':
-                deadline += datetime.timedelta(days=28)
-
-            # Update related Submission.
-            Submission.objects.filter(id=self.submission.id).update(
-                refereeing_cycle=CYCLE_DEFAULT,
-                status=STATUS_EIC_ASSIGNED,
-                reporting_deadline=deadline,
-                open_for_reporting=True,
-                open_for_commenting=True,
-                visible_public=True,
-                latest_activity=timezone.now())
-        else:
-            # Formulate rejection recommendation instead
-
-            # Update related Submission.
-            Submission.objects.filter(id=self.submission.id).update(
-                refereeing_cycle=CYCLE_DIRECT_REC,
-                status=STATUS_EIC_ASSIGNED,
-                reporting_deadline=timezone.now(),
-                open_for_reporting=False,
-                open_for_commenting=True,
-                visible_public=False,
-                latest_activity=timezone.now())
+        if self.has_accepted_invite():
+            if self.is_normal_cycle():
+                # Default Refereeing process!
+
+                deadline = timezone.now() + datetime.timedelta(days=28)
+                if recommendation.submission.submitted_to_journal == 'SciPostPhysLectNotes':
+                    deadline += datetime.timedelta(days=28)
+
+                # Update related Submission.
+                Submission.objects.filter(id=self.submission.id).update(
+                    refereeing_cycle=CYCLE_DEFAULT,
+                    status=STATUS_EIC_ASSIGNED,
+                    editor_in_charge=self.request.user.contributor,
+                    reporting_deadline=deadline,
+                    open_for_reporting=True,
+                    open_for_commenting=True,
+                    visible_public=True,
+                    latest_activity=timezone.now())
+            else:
+                # Formulate rejection recommendation instead
+
+                # Update related Submission.
+                Submission.objects.filter(id=self.submission.id).update(
+                    refereeing_cycle=CYCLE_DIRECT_REC,
+                    status=STATUS_EIC_ASSIGNED,
+                    editor_in_charge=self.request.user.contributor,
+                    reporting_deadline=timezone.now(),
+                    open_for_reporting=False,
+                    open_for_commenting=True,
+                    visible_public=False,
+                    latest_activity=timezone.now())
 
         if self.has_accepted_invite():
             # Implicitly or explicity accept the assignment and deprecate others.
-            Submission.objects.filter(id=self.submission.id).update(
-                editor_in_charge=self.request.user.contributor,)
             recommendation.accepted = True
             EditorialAssignment.objects.filter(submission=self.submission, accepted=None).exclude(
                 id=recommendation.id).update(deprecated=True)
-- 
GitLab