diff --git a/submissions/forms.py b/submissions/forms.py index ca2a011894da8bfb65b417c8f0d4dc47f581d53b..f9ed4646a4038f9fcda75ff83d10985660608985 100644 --- a/submissions/forms.py +++ b/submissions/forms.py @@ -118,6 +118,10 @@ class ConsiderRefereeInvitationForm(forms.Form): refusal_reason = forms.ChoiceField(choices=ASSIGNMENT_REFUSAL_REASONS, required=False) +class SetRefereeingDeadlineForm(forms.Form): + deadline = forms.DateField(required=False, label='', + widget=forms.SelectDateWidget) + class VotingEligibilityForm(forms.Form): def __init__(self, *args, **kwargs): diff --git a/submissions/templates/submissions/editorial_page.html b/submissions/templates/submissions/editorial_page.html index f93e3dc1465ba0c73bc15c46fd716b15d9547982..0995ab7c8b2d4537881fac18d00957b8e1ad1508 100644 --- a/submissions/templates/submissions/editorial_page.html +++ b/submissions/templates/submissions/editorial_page.html @@ -132,7 +132,7 @@ <ul> <li><a href="{% url 'submissions:select_referee' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}"> Select an additional referee</a> (bear in mind flagged referees if any)</li> - <li>Extend the refereeing deadline (currently {{ submission.reporting_deadline }}) by + <li>Extend the refereeing deadline (currently {{ submission.reporting_deadline|date:'Y-m-d' }}) by <a href="{% url 'submissions:extend_refereeing_deadline' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr days=2 %}">2 days</a>, <a href="{% url 'submissions:extend_refereeing_deadline' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr days=7 %}">1 week</a> or <a href="{% url 'submissions:extend_refereeing_deadline' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr days=14 %}">2 weeks</a> @@ -140,6 +140,13 @@ <b style="color: red">THE REPORTING DEADLINE HAS PASSED</b> {% endif %} </li> + <li> + Set refereeing deadline: + <form action="{% url 'submissions:set_refereeing_deadline' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}" method="post"> + {% csrf_token %}{{ set_deadline_form }} + <input type="submit" value="Set deadline"/> + </form> + </li> <li><a href="{% url 'submissions:vet_submitted_reports' %}">Vet submitted Reports</a> ({{ nr_reports_to_vet }})</li> {% if not submission.reporting_deadline_has_passed %} <li><a href="{% url 'submissions:close_refereeing_round' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">Close the refereeing round</a> (deactivates submission of new Reports and Comments)</li> diff --git a/submissions/templates/submissions/submission_detail.html b/submissions/templates/submissions/submission_detail.html index f6b946e2a00cffd7ea2c4e23a69c53bb60d402d4..8a47e3e504053d7d4c47b1b20cc08df193250a8a 100644 --- a/submissions/templates/submissions/submission_detail.html +++ b/submissions/templates/submissions/submission_detail.html @@ -59,6 +59,16 @@ <h1>Status:</h1> {{ submission.status_info_as_table }} + {% if submission.author_comments %} + <h3>Author comments upon resubmission</h3> + <p>{{ submission.author_comments|linebreaks }}</p> + {% endif %} + + {% if submission.list_of_changes %} + <h3>List of changes</h3> + <p>{{ submission.list_of_changes|linebreaks }}</p> + {% endif %} + </section> {% if is_author or user|is_in_group:'Editorial College' or user|is_in_group:'Editorial Administrators' %} diff --git a/submissions/urls.py b/submissions/urls.py index 0cb3e29843cb87907773194b6deb59e7191b7fe0..d66f264811328490a88285ef595251e3ff625b56 100644 --- a/submissions/urls.py +++ b/submissions/urls.py @@ -52,6 +52,8 @@ urlpatterns = [ views.cancel_ref_invitation, name='cancel_ref_invitation'), url(r'^extend_refereeing_deadline/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})/(?P<days>[0-9]+)$', views.extend_refereeing_deadline, name='extend_refereeing_deadline'), + url(r'^set_refereeing_deadline/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})$', + views.set_refereeing_deadline, name='set_refereeing_deadline'), url(r'^close_refereeing_round/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})$', views.close_refereeing_round, name='close_refereeing_round'), url(r'^communication/(?P<arxiv_identifier_w_vn_nr>[0-9]{4,}.[0-9]{5,}v[0-9]{1,2})/(?P<comtype>[a-zA-Z]{4,})$', diff --git a/submissions/views.py b/submissions/views.py index 7a17e1cf9ed8abf1fe725cc4ab5208db7fdba345..4934c98bc6f761ff5f64689a7eeb23e6cda604e6 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -647,8 +647,10 @@ def editorial_page(request, arxiv_identifier_w_vn_nr): recommendation = EICRecommendation.objects.get(submission=submission) except EICRecommendation.DoesNotExist: recommendation = None - context = {'submission': submission, 'other_versions': other_versions, + context = {'submission': submission, + 'other_versions': other_versions, 'recommendation': recommendation, + 'set_deadline_form': SetRefereeingDeadlineForm(), 'ref_invitations': ref_invitations, 'nr_reports_to_vet': nr_reports_to_vet, 'communications': communications} @@ -866,6 +868,35 @@ def extend_refereeing_deadline(request, arxiv_identifier_w_vn_nr, days): kwargs={'arxiv_identifier_w_vn_nr': arxiv_identifier_w_vn_nr})) +@login_required +@permission_required_or_403('can_take_editorial_actions', + (Submission, 'arxiv_identifier_w_vn_nr', 'arxiv_identifier_w_vn_nr')) +def set_refereeing_deadline(request, arxiv_identifier_w_vn_nr): + submission = get_object_or_404 (Submission, arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr) + if request.method == 'POST': + form = SetRefereeingDeadlineForm(request.POST) + if form.is_valid(): + submission.reporting_deadline = form.cleaned_data['deadline'] + if form.cleaned_data['deadline'] > timezone.now().date(): + submission.open_for_reporting = True + submission.open_for_commenting = True + submission.status = 'EICassigned' + submission.latest_activity = timezone.now() + submission.save() + context = {'ack_header': 'New reporting deadline set.', + 'followup_message': 'Return to the ', + 'followup_link': reverse('submissions:editorial_page', + kwargs={'arxiv_identifier_w_vn_nr': submission.arxiv_identifier_w_vn_nr}), + 'followup_link_label': 'Submission\'s Editorial Page'} + return render(request, 'scipost/acknowledgement.html', context) + else: + errormessage = 'The set reporting deadline form was improperly filled' + return render(request, 'scipost/error.html', {'errormessage': errormessage}) + + return redirect(reverse('submissions:editorial_page', + kwargs={'arxiv_identifier_w_vn_nr': arxiv_identifier_w_vn_nr})) + + @login_required @permission_required_or_403('can_take_editorial_actions', (Submission, 'arxiv_identifier_w_vn_nr', 'arxiv_identifier_w_vn_nr'))