From 1541d9b33723f06c0391e2dc57c5c04f9f23dae5 Mon Sep 17 00:00:00 2001 From: George Katsikas <giorgakis.katsikas@gmail.com> Date: Thu, 22 Feb 2024 15:55:08 +0100 Subject: [PATCH] hotfix treat empty referee response as null --- scipost_django/submissions/forms/__init__.py | 14 +++++++------- scipost_django/submissions/views/__init__.py | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/scipost_django/submissions/forms/__init__.py b/scipost_django/submissions/forms/__init__.py index 782f0726f..0ecca5627 100644 --- a/scipost_django/submissions/forms/__init__.py +++ b/scipost_django/submissions/forms/__init__.py @@ -2483,7 +2483,7 @@ class ConsiderRefereeInvitationForm(forms.Form): label="Are you willing to referee this Submission?", ) refusal_reason = forms.ChoiceField( - choices=EditorialAssignment.REFUSAL_REASONS, required=False + choices=[(None, "")] + list(EditorialAssignment.REFUSAL_REASONS), required=False ) other_refusal_reason = forms.CharField( required=False, @@ -2497,24 +2497,24 @@ class ConsiderRefereeInvitationForm(forms.Form): def clean(self): accepted = self.cleaned_data.get("accept", None) - reason = self.cleaned_data.get("refusal_reason", None) - other_refusal_reason = self.cleaned_data.get("other_refusal_reason", None) + reason = self.cleaned_data.get("refusal_reason", "") + other_refusal_reason = self.cleaned_data.get("other_refusal_reason", "") if accepted == "False": - if reason is None: + if reason == "": self.add_error( "refusal_reason", "Please select a reason for declining." ) - if reason == "other" and other_refusal_reason is None: + if reason == "OTH" and other_refusal_reason == "": self.add_error( "other_refusal_reason", "Please specify your reason for declining." ) - elif reason != "other" and other_refusal_reason is not None: + elif reason != "OTH" and other_refusal_reason != "": self.add_error( "other_refusal_reason", 'Please select "Other" to specify your reason for declining.', ) - elif reason is not None: + elif accepted == "True" and reason != "": self.add_error( "refusal_reason", "You cannot select a refusal reason if you accept.", diff --git a/scipost_django/submissions/views/__init__.py b/scipost_django/submissions/views/__init__.py index 7097da88a..879604db3 100644 --- a/scipost_django/submissions/views/__init__.py +++ b/scipost_django/submissions/views/__init__.py @@ -1567,6 +1567,7 @@ def decline_ref_invitation(request, invitation_key): invitation.accepted = False invitation.date_responded = timezone.now() invitation.refusal_reason = form.cleaned_data["refusal_reason"] + invitation.other_refusal_reason = form.cleaned_data["other_refusal_reason"] invitation.save() mail_util = DirectMailUtil( -- GitLab