From 14ce0c970c6428e2c377ca5d594f99b5a16f95f3 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Sat, 10 Nov 2018 06:34:27 +0100
Subject: [PATCH] Accelerate ref deadline updating methods using .update

---
 .../templates/submissions/select_referee.html |  2 +-
 submissions/views.py                          | 22 ++++++++-----------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/submissions/templates/submissions/select_referee.html b/submissions/templates/submissions/select_referee.html
index f9f5adc18..2e1448349 100644
--- a/submissions/templates/submissions/select_referee.html
+++ b/submissions/templates/submissions/select_referee.html
@@ -73,7 +73,7 @@
 <div class="row">
   <div class="col-12">
     {% if workdays_left_to_report < 15 %}
-    <h4 class="highlight p-1"><strong class="text-danger">Warning: there are {{ workdays_left_to_report }} days left before the refereeing deadline.</strong><br/><br/>Consider resetting the deadline at the <a href="{% url 'submissions:editorial_page' identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr %}">Editorial Page</a> before inviting a referee.</h4>
+    <h4 class="highlight p-1"><strong class="text-danger">Warning: there are {{ workdays_left_to_report }} working days left before the refereeing deadline.</strong><br/><br/>Consider resetting the deadline at the <a href="{% url 'submissions:editorial_page' identifier_w_vn_nr=submission.preprint.identifier_w_vn_nr %}">Editorial Page</a> before inviting a referee.</h4>
     {% endif %}
     {% if profiles_found %}
     <h3>Matching people in our database:</h3>
diff --git a/submissions/views.py b/submissions/views.py
index e6d0ede8e..a9fc47ea3 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -1181,12 +1181,11 @@ def extend_refereeing_deadline(request, identifier_w_vn_nr, days):
     submission = get_object_or_404(Submission.objects.filter_for_eic(request.user),
                                    preprint__identifier_w_vn_nr=identifier_w_vn_nr)
 
-    submission.reporting_deadline += datetime.timedelta(days=int(days))
-    submission.open_for_reporting = True
-    submission.open_for_commenting = True
-    submission.status = STATUS_EIC_ASSIGNED
-    submission.latest_activity = timezone.now()
-    submission.save()
+    Submission.objects.filter(pk=submission.id).update(
+        reporting_deadline=submission.reporting_deadline + datetime.timedelta(days=int(days)),
+        open_for_reporting=True,
+        open_for_commenting=True,
+        latest_activity=timezone.now())
 
     submission.add_general_event('A new refereeing deadline is set.')
     return redirect(reverse('submissions:editorial_page',
@@ -1204,13 +1203,10 @@ def set_refereeing_deadline(request, identifier_w_vn_nr):
 
     form = SetRefereeingDeadlineForm(request.POST or None)
     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.latest_activity = timezone.now()
-        # submission.status = STATUS_EIC_ASSIGNED  # This is dangerous as shit.
-        submission.save()
+        Submission.objects.filter(pk=submission.id).update(
+            reporting_deadline=form.cleaned_data['deadline'],
+            open_for_reporting=(form.cleaned_data['deadline'] >= timezone.now().date()),
+            latest_activity = timezone.now())
         submission.add_general_event('A new refereeing deadline is set.')
         messages.success(request, 'New reporting deadline set.')
     else:
-- 
GitLab