diff --git a/hypha/apply/funds/templates/funds/submissions_result.html b/hypha/apply/funds/templates/funds/submissions_result.html index 474cbcf83f..012bf1001d 100644 --- a/hypha/apply/funds/templates/funds/submissions_result.html +++ b/hypha/apply/funds/templates/funds/submissions_result.html @@ -46,7 +46,7 @@

{% trans "Submissions" %}
- {{ object_list.count }} + {{ submission_count }}
@@ -104,14 +104,13 @@

{% trans "Reviews" %}

{% trans "Totals" %}

- {% include "funds/includes/table_filter_and_search.html" with search_term=search_term %}
{% trans "Number of submissions" %} - {{ count_values }}{% if not count_values == object_list.count %}*{% endif %} + {{ count_values }}{% if not count_values == submission_count %}*{% endif %}
@@ -129,8 +128,8 @@

{% trans "Totals" %}

- {% if not count_values == object_list.count %} - {% with object_list.count|subtract:count_values as count_diff %} + {% if not count_values == submission_count %} + {% with submission_count|subtract:count_values as count_diff %}

{% blocktrans %}*{{ count_diff }} submission(s) lack requested amount fields or data and are not included.{% endblocktrans %}

diff --git a/hypha/apply/funds/views/results.py b/hypha/apply/funds/views/results.py index 15c3ea9427..6f3d1a467f 100644 --- a/hypha/apply/funds/views/results.py +++ b/hypha/apply/funds/views/results.py @@ -26,19 +26,20 @@ class SubmissionStatsMixin: def get_context_data(self, **kwargs): submissions = ApplicationSubmission.objects.exclude_draft() + filter = kwargs.get("filter") + user = self.request.user + # Getting values is an expensive operation. If there's no valid filters # then `count_values` & `total_value` will be encapsulating all submissions # and should be used rather than recaluclating these values. - if not (filter := kwargs.get("filter")) or not is_filter_empty(filter): - submission_count = kwargs.get("count_values") + if not filter or not is_filter_empty(filter): submission_sum = kwargs.get("total_value") else: - submission_count = submissions.count() submission_value = submissions.current().value() submission_sum = format_submission_sum_value(submission_value) submission_undetermined_count = submissions.undetermined().count() - review_my_count = submissions.reviewed_by(self.request.user).count() + review_my_count = submissions.reviewed_by(user).count() submission_accepted = submissions.current_accepted() submission_accepted_value = submission_accepted.value() @@ -47,13 +48,12 @@ def get_context_data(self, **kwargs): reviews = Review.objects.submitted() review_count = reviews.count() - review_my_score = reviews.by_user(self.request.user).score() + review_my_score = reviews.by_user(user).score() return super().get_context_data( submission_undetermined_count=submission_undetermined_count, review_my_count=review_my_count, submission_sum=submission_sum, - submission_count=submission_count, submission_accepted_count=submission_accepted_count, submission_accepted_sum=submission_accepted_sum, review_count=review_count, @@ -82,24 +82,13 @@ def get_filterset_kwargs(self, filterset_class, **kwargs): return new_kwargs def get_queryset(self): - return ( - self.filterset_class._meta.model.objects.current() - .exclude_draft() - .defer( - "search_data", - "submit_time", - "workflow_name", - "search_document", - "live_revision_id", - "draft_revision_id", - "summary", - ) - ) + return self.filterset_class._meta.model.objects.current().exclude_draft() def get_context_data(self, **kwargs): search_term = self.request.GET.get("query") - if self.object_list: + if self.object_list.exists(): + submission_count = self.object_list.count() submission_values = self.object_list.value() count_values = submission_values.get("value__count") total_value = format_submission_sum_value(submission_values) @@ -111,6 +100,7 @@ def get_context_data(self, **kwargs): count_values = 0 total_value = 0 average_value = 0 + submission_count = 0 return super().get_context_data( search_term=search_term, @@ -118,5 +108,6 @@ def get_context_data(self, **kwargs): count_values=count_values, total_value=total_value, average_value=average_value, + submission_count=submission_count, **kwargs, )