From 7445df525021227232b7b36b2627eb57955cfc94 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Wed, 13 Sep 2017 06:34:26 +0200 Subject: [PATCH] Correct original submission date filtering in stats --- stats/templates/stats/statistics.html | 3 ++- stats/views.py | 8 ++++---- submissions/managers.py | 12 ++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/stats/templates/stats/statistics.html b/stats/templates/stats/statistics.html index 52d44d1dc..afe2e4316 100644 --- a/stats/templates/stats/statistics.html +++ b/stats/templates/stats/statistics.html @@ -17,7 +17,8 @@ <h1 class="highlight">Statistics</h1> <h2>Aggregate statistics</h2> -<p>For each Journal, clicking on a year gives aggregate statistics for submissions (so including rejections). Clicking on a Journal/Volume/Issue gives aggregates for publications in this object.</p> +<p>For each Journal, clicking on a year gives aggregate statistics for Submissions (so including rejections and withdrawals) which were first submitted in that year.</p> +<p>Clicking on a Journal/Volume/Issue gives aggregates for all publications in that object.</p> <ul> {% for journal in journals|dictsort:"doi_label" %} <li><a href="{% url 'stats:statistics' journal_doi_label=journal.doi_label %}">{{ journal }}</a></li> diff --git a/stats/views.py b/stats/views.py index 762251209..3b3ac22ac 100644 --- a/stats/views.py +++ b/stats/views.py @@ -1,3 +1,5 @@ +import datetime + from django.contrib.auth.decorators import login_required, permission_required from django.shortcuts import get_object_or_404, render @@ -17,10 +19,8 @@ def statistics(request, journal_doi_label=None, volume_nr=None, issue_nr=None, y context['journal'] = journal if year: context['year'] = year - submissions = Submission.objects.filter( - submitted_to_journal=journal_doi_label, - submission_date__year=year, - ) + submissions = Submission.objects.filter(submitted_to_journal=journal_doi_label + ).originally_submitted(datetime.date(int(year), 1, 1), datetime.date(int(year), 12, 31)) context['submissions'] = submissions nr_ref_inv = 0 nr_acc = 0 diff --git a/submissions/managers.py b/submissions/managers.py index c3ba890ef..ca6bf98c7 100644 --- a/submissions/managers.py +++ b/submissions/managers.py @@ -110,6 +110,18 @@ class SubmissionQuerySet(models.QuerySet): return self.filter(status__in=[STATUS_ACCEPTED, STATUS_REJECTED_VISIBLE, STATUS_PUBLISHED, STATUS_RESUBMITTED, STATUS_RESUBMITTED_REJECTED_VISIBLE]) + def originally_submitted(self, from_date, until_date): + """ + Returns the submissions originally received between from_date and until_date + (including subsequent resubmissions, even if those came in later). + """ + identifiers = [] + for sub in self.filter(is_resubmission=False, + submission_date__range=(from_date, until_date)): + identifiers.append(sub.arxiv_identifier_wo_vn_nr) + return self.filter(arxiv_identifier_wo_vn_nr__in=identifiers) + + def accepted(self): return self.filter(status=STATUS_ACCEPTED) -- GitLab