diff --git a/submissions/views.py b/submissions/views.py index 1ce2ba0e3cebd21b16c2b3dcce20110225baca44..844c026e998b84863f956c90722223e382377735 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -1067,19 +1067,25 @@ def eic_recommendation(request, arxiv_identifier_w_vn_nr): recommendation.recommendation == 3 or recommendation.recommendation == -3): submission.status = 'voting_in_preparation' + + # Add SubmissionEvent for EIC + submission.add_event_for_eic('An Editorial Recommendation decision has been' + ' formulated: %s.' + % recommendation.get_recommendation_display()) + elif (recommendation.recommendation == -1 or recommendation.recommendation == -2): submission.status = 'revision_requested' SubmissionUtils.load({'submission': submission, 'recommendation': recommendation}) SubmissionUtils.send_author_revision_requested_email() + + # Add SubmissionEvents + submission.add_general_event('An Editorial Recommendation has been formulated: %s.' + % recommendation.get_recommendation_display()) submission.open_for_reporting = False submission.save() - # Add SubmissionEvents - submission.add_general_event('An Editorial Recommendation has been formulated: %s.' - % recommendation.get_recommendation_display()) - # The EIC has fulfilled this editorial assignment. assignment = get_object_or_404(EditorialAssignment, submission=submission, to=request.user.contributor) @@ -1357,27 +1363,40 @@ def fix_College_decision(request, rec_id): """ recommendation = get_object_or_404((EICRecommendation.objects .get_for_user_in_pool(request.user)), pk=rec_id) + submission = recommendation.submission if recommendation.recommendation in [1, 2, 3]: # Publish as Tier I, II or III - recommendation.submission.status = 'accepted' - recommendation.submission.acceptance_date = datetime.date.today() + submission.status = 'accepted' + submission.acceptance_date = datetime.date.today() + # Create a ProductionStream object - prodstream = ProductionStream(submission=recommendation.submission) + prodstream = ProductionStream(submission=submission) prodstream.save() + + # Add SubmissionEvent for authors + # Do not write a new event for minor/major modification: already done at moment of + # creation. + submission.add_event_for_author('An Editorial Recommendation has been formulated: %s.' + % recommendation.get_recommendation_display()) elif recommendation.recommendation == -3: - # Reject - recommendation.submission.status = 'rejected' - previous_submissions = Submission.objects.filter( - arxiv_identifier_wo_vn_nr=recommendation.submission.arxiv_identifier_wo_vn_nr - ).exclude(pk=recommendation.submission.id) - for sub in previous_submissions: + # Reject + update-reject other versions of submission + submission.status = 'rejected' + for sub in submission.other_versions: sub.status = 'resubmitted_rejected' sub.save() - recommendation.submission.save() - SubmissionUtils.load({'submission': recommendation.submission, - 'recommendation': recommendation}) + # Add SubmissionEvent for authors + # Do not write a new event for minor/major modification: already done at moment of + # creation. + submission.add_event_for_author('An Editorial Recommendation has been formulated: %s.' + % recommendation.get_recommendation_display()) + + # Add SubmissionEvent for EIC + submission.add_event_for_eic('The Editorial College\'s decision has been fixed: %s.' + % recommendation.get_recommendation_display()) + + submission.save() + SubmissionUtils.load({'submission': submission, 'recommendation': recommendation}) SubmissionUtils.send_author_College_decision_email() - ack_message = 'The Editorial College\'s decision has been fixed.' - return render(request, 'scipost/acknowledgement.html', - context={'ack_message': ack_message}) + messages.success(request, 'The Editorial College\'s decision has been fixed.') + return redirect(reverse('submissions:pool'))