From 1519a1596e4213de9e58222fa60ee2012bbce37f Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Wed, 28 Sep 2016 22:20:16 +0200
Subject: [PATCH] Make author_comments and list_of_changes visible; set ref
 deadline by date facility for EIC

---
 submissions/forms.py                          |  4 +++
 .../templates/submissions/editorial_page.html |  9 ++++-
 .../submissions/submission_detail.html        | 10 ++++++
 submissions/urls.py                           |  2 ++
 submissions/views.py                          | 33 ++++++++++++++++++-
 5 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/submissions/forms.py b/submissions/forms.py
index ca2a01189..f9ed4646a 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 f93e3dc14..0995ab7c8 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> &nbsp;(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 f6b946e2a..8a47e3e50 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 0cb3e2984..d66f26481 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 7a17e1cf9..4934c98bc 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'))
-- 
GitLab