From fbcc0c1fb14bdcb41eb23b6b060f56707bd3acf1 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Thu, 8 Jun 2017 10:15:34 +0200 Subject: [PATCH] Hotfix decline link not working --- scipost/urls.py | 5 +++++ submissions/utils.py | 4 ++-- submissions/views.py | 25 ++++++++++++------------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/scipost/urls.py b/scipost/urls.py index 5b8809d94..ac5f3ab49 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -8,6 +8,7 @@ from .feeds import LatestNewsFeedRSS, LatestNewsFeedAtom, LatestCommentsFeedRSS, from journals import views as journals_views from journals.constants import REGEX_CHOICES +from submissions import views as submission_views JOURNAL_REGEX = '(?P<doi_label>%s)' % REGEX_CHOICES @@ -209,4 +210,8 @@ urlpatterns = [ TemplateView.as_view(template_name='scipost/howto_production.html'), name='howto_production'), + # Temporary fix, due to mails sent with wrong urls + url(r'^decline_ref_invitation/(?P<invitation_key>.+)$', + submission_views.decline_ref_invitation), + ] diff --git a/submissions/utils.py b/submissions/utils.py index 29ed7e85b..bd28833b0 100644 --- a/submissions/utils.py +++ b/submissions/utils.py @@ -746,7 +746,7 @@ class SubmissionUtils(BaseMailUtil): 'we would appreciate a quick accept/decline response from you, ' 'ideally within the next 2 days.\n\n' 'If you are not able to provide a Report, you can quickly let us know by simply ' - 'navigating to \n\nhttps://scipost.org/decline_ref_invitation/' + 'navigating to \n\nhttps://scipost.org/submissions/decline_ref_invitation/' + cls.invitation.invitation_key + '\n\n' 'If you are able to provide a Report, you can confirm this after registering ' 'and logging in (you will automatically be prompted for a confirmation). ' @@ -777,7 +777,7 @@ class SubmissionUtils(BaseMailUtil): 'ideally within the next 2 days.</p>' '<p>If you are <strong>not</strong> able to provide a Report, ' 'you can quickly let us know by simply ' - '<a href="https://scipost.org/decline_ref_invitation/{{ invitation_key }}">' + '<a href="https://scipost.org/submissions/decline_ref_invitation/{{ invitation_key }}">' 'clicking here</a>.</p>' '<p>If you are able to provide a Report, you can confirm this after registering ' 'and logging in (you will automatically be prompted for a confirmation). ' diff --git a/submissions/views.py b/submissions/views.py index a3764b96f..d6f3944bc 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -754,19 +754,18 @@ def accept_or_decline_ref_invitation_ack(request, invitation_id): def decline_ref_invitation(request, invitation_key): - invitation = get_object_or_404(RefereeInvitation, invitation_key=invitation_key) - if request.method == 'POST': - form = ConsiderRefereeInvitationForm(request.POST) - if form.is_valid(): - invitation.accepted = False - invitation.refusal_reason = form.cleaned_data['refusal_reason'] - invitation.save() - SubmissionUtils.load({'invitation': invitation}, request) - SubmissionUtils.email_referee_response_to_EIC() - messages.success(request, 'Thank you for informing us that you will not provide a Report.') - return redirect(reverse('scipost:index')) - else: - form = ConsiderRefereeInvitationForm(initial={'accept': False}) + invitation = get_object_or_404(RefereeInvitation, invitation_key=invitation_key, + accepted__isnull=True) + + form = ConsiderRefereeInvitationForm(request.POST or None, initial={'accept': False}) + if form.is_valid(): + invitation.accepted = False + invitation.refusal_reason = form.cleaned_data['refusal_reason'] + invitation.save() + SubmissionUtils.load({'invitation': invitation}, request) + SubmissionUtils.email_referee_response_to_EIC() + messages.success(request, 'Thank you for informing us that you will not provide a Report.') + return redirect(reverse('scipost:index')) context = {'invitation': invitation, 'form': form} return render(request, 'submissions/decline_ref_invitation.html', context) -- GitLab