From 5959bae0cf6ddfce0b103c92f23202736d6a366f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jean-S=C3=A9bastien=20Caux?= <git@jscaux.org>
Date: Tue, 29 Nov 2022 11:38:44 +0100
Subject: [PATCH] Cleanup Submission status (case of puboffer for alternative
 journal)

---
 .../submissions/models/submission.py          | 36 ++++++++-----------
 scipost_django/submissions/views.py           | 10 ++++--
 2 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/scipost_django/submissions/models/submission.py b/scipost_django/submissions/models/submission.py
index 5ad4514e1..561c0c3bf 100644
--- a/scipost_django/submissions/models/submission.py
+++ b/scipost_django/submissions/models/submission.py
@@ -63,7 +63,6 @@ class Submission(models.Model):
     AWAITING_DECISION = "awaiting_decision"
     ACCEPTED = "accepted" # remove
     ACCEPTED_IN_TARGET = "accepted_in_target"
-    ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE = "puboffer_waiting" # remove
     ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE = "accepted_alt_puboffer_waiting"
     ACCEPTED_IN_ALTERNATIVE = "accepted_alt"
     REJECTED = "rejected"
@@ -71,33 +70,29 @@ class Submission(models.Model):
     PUBLISHED = "published"
 
     SUBMISSION_STATUSES = (
-        (INCOMING, "Submission incoming, awaiting EdAdmin"), ## descriptor rephrased
-        (ADMISSION_FAILED, "Admission failed"), ## new
-        (PREASSIGNMENT, "In preassignment"), ## new2
-        (PREASSIGNMENT_FAILED, "Preassignment failed"), ## new
+        (INCOMING, "Submission incoming, awaiting EdAdmin"),
+        (ADMISSION_FAILED, "Admission failed"),
+        (PREASSIGNMENT, "In preassignment"),
+        (PREASSIGNMENT_FAILED, "Preassignment failed"),
         (SEEKING_ASSIGNMENT, "Seeking assignment"),
         (
             ASSIGNMENT_FAILED,
             "Failed to assign Editor-in-charge; manuscript rejected",
         ),
-        (REFEREEING_IN_PREPARATION, "Refereeing in preparation"), ## new
-        (IN_REFEREEING, "In refereeing"), ## new
-        (REFEREEING_CLOSED, "Refereeing closed (awaiting author replies and EdRec)"), ## new
-        (AWAITING_RESUBMISSION, "Awaiting resubmission"), ## new
+        (REFEREEING_IN_PREPARATION, "Refereeing in preparation"),
+        (IN_REFEREEING, "In refereeing"),
+        (REFEREEING_CLOSED, "Refereeing closed (awaiting author replies and EdRec)"),
+        (AWAITING_RESUBMISSION, "Awaiting resubmission"),
         (RESUBMITTED, "Has been resubmitted"),
-        (VOTING_IN_PREPARATION, "Voting in preparation"), ## new
-        (IN_VOTING, "In voting"), ## new
-        (AWAITING_DECISION, "Awaiting decision"), ## new
-        (ACCEPTED_IN_TARGET, "Accepted in target Journal"), ## new
+        (VOTING_IN_PREPARATION, "Voting in preparation"),
+        (IN_VOTING, "In voting"),
+        (AWAITING_DECISION, "Awaiting decision"),
+        (ACCEPTED_IN_TARGET, "Accepted in target Journal"),
         (
-            ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE, ## rename: ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE
-            "Accepted in other journal; awaiting puboffer acceptance",
-        ),
-        (
-            ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE, ## new
+            ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE,
             "Accepted in alternative Journal; awaiting puboffer acceptance",
         ),
-        (ACCEPTED_IN_ALTERNATIVE, "Accepted in alternative Journal"), ## new
+        (ACCEPTED_IN_ALTERNATIVE, "Accepted in alternative Journal"),
         (REJECTED, "Publication decision taken: reject"),
         (WITHDRAWN, "Withdrawn by the Authors"),
         (PUBLISHED, "Published"),
@@ -116,8 +111,7 @@ class Submission(models.Model):
         VOTING_IN_PREPARATION,
         IN_VOTING,
         AWAITING_DECISION,
-        ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE, # remove
-        ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE, # remove
+        ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE,
     )
 
     # Further handy sets
diff --git a/scipost_django/submissions/views.py b/scipost_django/submissions/views.py
index aabe3066e..f6e0d37a7 100644
--- a/scipost_django/submissions/views.py
+++ b/scipost_django/submissions/views.py
@@ -2787,13 +2787,15 @@ def fix_editorial_decision(request, identifier_w_vn_nr):
     eicrec.save()
 
     if decision.decision == EIC_REC_PUBLISH:
-        new_sub_status = submission.ACCEPTED
+        new_sub_status = submission.ACCEPTED_IN_TARGET
         if (
             decision.for_journal != submission.submitted_to
             # promotion to Selections assumed automatically accepted by authors:
             and decision.for_journal.name != "SciPost Selections"
         ):
-            new_sub_status = submission.ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE
+            new_sub_status = (
+                submission.ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE
+            )
         Submission.objects.filter(id=submission.id).update(
             visible_public=True,
             status=new_sub_status,
@@ -2914,7 +2916,9 @@ def accept_puboffer(request, identifier_w_vn_nr):
             "You are not marked as the submitting author of this Submission, "
             "and thus are not allowed to take this action."
         )
-    if submission.status != submission.ACCEPTED_AWAITING_PUBOFFER_ACCEPTANCE:
+    if submission.status != (
+            submission.ACCEPTED_IN_ALTERNATIVE_AWAITING_PUBOFFER_ACCEPTANCE
+    ):
         errormessage = (
             "This Submission's status is incompatible with accepting"
             " a publication offer."
-- 
GitLab