From 11f2e0b6f5778fc8c127539986e2a3b8626fdbd7 Mon Sep 17 00:00:00 2001
From: George Katsikas <giorgakis.katsikas@gmail.com>
Date: Mon, 15 Apr 2024 16:01:12 +0200
Subject: [PATCH] replace None journal with Any/all, improving #80

---
 scipost_django/submissions/forms/__init__.py   |  4 ++--
 .../submissions/models/recommendation.py       | 18 +++++++++++++++++-
 .../_recommendation_author_content.html        |  4 ++--
 .../_submission_details_summary_contents.html  |  2 +-
 .../_recommendation_details.html               |  4 ++--
 scipost_django/submissions/utils.py            |  4 ++--
 6 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/scipost_django/submissions/forms/__init__.py b/scipost_django/submissions/forms/__init__.py
index c23dae5f4..32a3935bc 100644
--- a/scipost_django/submissions/forms/__init__.py
+++ b/scipost_django/submissions/forms/__init__.py
@@ -3211,7 +3211,7 @@ class EICRecommendationForm(forms.ModelForm):
             # Add SubmissionEvents for both Author and EIC
             self.submission.add_general_event(
                 event_text.format(
-                    str(recommendation.for_journal),
+                    recommendation.get_for_journal_short_display(),
                     recommendation.get_recommendation_display(),
                 )
             )
@@ -3241,7 +3241,7 @@ class EICRecommendationForm(forms.ModelForm):
             # Add SubmissionEvent for EIC only
             self.submission.add_event_for_eic(
                 event_text.format(
-                    str(recommendation.for_journal),
+                    recommendation.get_for_journal_short_display(),
                     recommendation.get_recommendation_display(),
                 )
             )
diff --git a/scipost_django/submissions/models/recommendation.py b/scipost_django/submissions/models/recommendation.py
index e94b4e71a..a18e83323 100644
--- a/scipost_django/submissions/models/recommendation.py
+++ b/scipost_django/submissions/models/recommendation.py
@@ -156,7 +156,7 @@ class EICRecommendation(SubmissionRelatedObjectMixin, models.Model):
     def get_full_status_short_display(self):
         """Return `recommendation` and `status` field display in short form."""
         eicrec_short = self.get_recommendation_short_display()
-        journal_name = self.for_journal.name_abbrev or ""
+        journal_name = self.get_for_journal_short_display()
         status_short = self.get_status_short_display()
         return f"{eicrec_short} - {journal_name} ({status_short})"
 
@@ -168,6 +168,22 @@ class EICRecommendation(SubmissionRelatedObjectMixin, models.Model):
         """Return `recommendation` field display in short form."""
         return dict(EIC_REC_CHOICES_SHORT).get(self.recommendation)
 
+    def get_for_journal_display(self):
+        """Return `for_journal` field display."""
+        return (
+            str(self.for_journal)
+            if self.for_journal is not None
+            else "Any/all journals"
+        )
+    
+    def get_for_journal_short_display(self):
+        """Return `for_journal` field short display."""
+        return (
+            str(self.for_journal.name_abbrev)
+            if self.for_journal is not None
+            else "Any/all"
+        )
+
 
 class AlternativeRecommendation(models.Model):
     """Alternative recommendation from voting Fellow who disagrees with EICRec."""
diff --git a/scipost_django/submissions/templates/submissions/_recommendation_author_content.html b/scipost_django/submissions/templates/submissions/_recommendation_author_content.html
index d4d04b83e..575f079fe 100644
--- a/scipost_django/submissions/templates/submissions/_recommendation_author_content.html
+++ b/scipost_django/submissions/templates/submissions/_recommendation_author_content.html
@@ -15,7 +15,7 @@
       </tr>
       <tr>
 	<td class="pe-2">For Journal:</td>
-	<td>{{ recommendation.for_journal }}</td>
+	<td>{{ recommendation.get_for_journal_display }}</td>
       </tr>
       <tr>
         <td class="pe-2">Recommendation:</td>
@@ -36,7 +36,7 @@
     {% block recommendation_remarks_for_editorial_college %}{% endblock %}
 
     <h3 class="pb-0">Recommendation</h3>
-    <p class="ps-md-3 mb-0">For Journal <em>{{ recommendation.for_journal }}:</em> <strong>{{ recommendation.get_recommendation_display }}</strong></p>
+    <p class="ps-md-3 mb-0">For Journal <em>{{ recommendation.get_for_journal_short_display }}:</em> <strong>{{ recommendation.get_recommendation_display }}</strong></p>
 
     {% block recommendation_reformulation %}
     {% endblock %}
diff --git a/scipost_django/submissions/templates/submissions/pool/_submission_details_summary_contents.html b/scipost_django/submissions/templates/submissions/pool/_submission_details_summary_contents.html
index fd169b783..1e06ec77f 100644
--- a/scipost_django/submissions/templates/submissions/pool/_submission_details_summary_contents.html
+++ b/scipost_django/submissions/templates/submissions/pool/_submission_details_summary_contents.html
@@ -61,7 +61,7 @@
 	    <small class="text-muted">EIC Recommendation &amp; Status</small>
 	    <br>
 	    {{ recommendation.get_recommendation_short_display }}
-      - {{ recommendation.for_journal.name_abbrev }}
+      - {{ recommendation.get_for_journal_short_display }}
 	    <br>
 	    {{ recommendation.get_status_short_display }}
 	    <br>
diff --git a/scipost_django/submissions/templates/submissions/pool/decisionmaking/_recommendation_details.html b/scipost_django/submissions/templates/submissions/pool/decisionmaking/_recommendation_details.html
index 6534e25fc..1f796c848 100644
--- a/scipost_django/submissions/templates/submissions/pool/decisionmaking/_recommendation_details.html
+++ b/scipost_django/submissions/templates/submissions/pool/decisionmaking/_recommendation_details.html
@@ -1,7 +1,7 @@
 <details class="border border-2 my-2" {% if not recommendation.is_deprecated %}open{% endif %}>
   <summary class="bg-{% if recommendation.is_deprecated %}warning{% else %}primary{% endif %} bg-opacity-10 px-4 py-2">
     <span class="h3">
-      Recommendation (for Journal <strong>{{ recommendation.for_journal }}</strong>):
+      Recommendation (for Journal <strong>{{ recommendation.get_for_journal_short_display }}</strong>):
       <strong>{{ recommendation.get_recommendation_display }}</strong>
       {% if recommendation.is_deprecated %}
 	<strong class="text-danger ms-4 px-2 bg-white">
@@ -42,7 +42,7 @@
     {% endblock %}
 
     <h3 class="pb-0">Recommendation</h3>
-    <p class="ps-md-3 mb-0">For Journal <em>{{ recommendation.for_journal }}:</em> <strong>{{ recommendation.get_recommendation_display }}</strong></p>
+    <p class="ps-md-3 mb-0">For Journal <em>{{ recommendation.get_for_journal_short_display }}:</em> <strong>{{ recommendation.get_recommendation_display }}</strong></p>
 
 
     {% if recommendation.may_be_reformulated %}
diff --git a/scipost_django/submissions/utils.py b/scipost_django/submissions/utils.py
index 0a9811180..d502d52a8 100644
--- a/scipost_django/submissions/utils.py
+++ b/scipost_django/submissions/utils.py
@@ -886,7 +886,7 @@ class SubmissionUtils(BaseMailUtil):
             email_text += (
                 "We are pleased to inform you that your Submission "
                 "has been accepted for publication in "
-                + str(cls.recommendation.for_journal)
+                + cls.recommendation.get_for_journal_display()
             )  # submission.submitted_to)
             email_text_html += (
                 "<p>We are pleased to inform you that your Submission "
@@ -961,7 +961,7 @@ class SubmissionUtils(BaseMailUtil):
             "sub_title": cls.submission.title,
             "author_list": cls.submission.author_list,
             "identifier_w_vn_nr": cls.submission.preprint.identifier_w_vn_nr,
-            "journal": str(cls.recommendation.for_journal),
+            "journal": cls.recommendation.get_for_journal_display(),
         }
         email_text_html += "<br/>" + EMAIL_FOOTER
         html_template = Template(email_text_html)
-- 
GitLab