diff --git a/scipost_django/submissions/forms/__init__.py b/scipost_django/submissions/forms/__init__.py index 782f0726fc9aa197716710799e72fcb239e315f1..0ecca5627fa7a451a98d13c94edf90c4cc9548a7 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 7097da88a39fd5d271db9188b90a4a1756f55d60..879604db3b14d37385fa28b91178e06387de08ca 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(