Skip to content

Results

hypha.apply.funds.views.results

User module-attribute

User = get_user_model()

SubmissionResultView

Bases: FilterView

template_name class-attribute instance-attribute

template_name = 'funds/submissions_result.html'

filterset_class class-attribute instance-attribute

filterset_class = SubmissionFilterAndSearch

filter_action class-attribute instance-attribute

filter_action = ''

excluded_fields class-attribute instance-attribute

excluded_fields = SUBMISSIONS_TABLE_EXCLUDED_FIELDS

excluded property

excluded

get_filterset_kwargs

get_filterset_kwargs(filterset_class, **kwargs)
Source code in hypha/apply/funds/views/results.py
def get_filterset_kwargs(self, filterset_class, **kwargs):
    new_kwargs = super().get_filterset_kwargs(filterset_class)
    new_kwargs.update(self.excluded)
    new_kwargs.update(kwargs)
    return new_kwargs

get_queryset

get_queryset()
Source code in hypha/apply/funds/views/results.py
def get_queryset(self):
    return self.filterset_class._meta.model.objects.current().exclude_draft()

get_context_data

get_context_data(**kwargs)
Source code in hypha/apply/funds/views/results.py
def get_context_data(self, **kwargs):
    count_values = 0
    total_value = 0
    submission_count = 0
    anonymized_excluded_count = 0

    qs_list = [self.object_list]

    # If a filter is active that has no equivalent on AnonymizedSubmission (e.g. "lead"),
    # anonymized submissions cannot be filtered consistently so exclude them.
    if set(self.request.GET) & _ANONYMIZE_ONLY_FIELDS:
        anonymized_excluded_count = AnonymizedSubmission.objects.count()
    else:
        anonymized_qs = AnonymizedSubmissionFilter(
            self.request.GET, queryset=AnonymizedSubmission.objects.all()
        ).qs
        qs_list.append(anonymized_qs)

    for qs in qs_list:
        submission_values = qs.value()
        vc = submission_values.get("value__count") or 0
        count_values += vc
        if total := submission_values.get("value__sum"):
            total_value += total
        submission_count += qs.count()

    average_value = round(total_value / count_values) if count_values else 0

    return super().get_context_data(
        filter_action=self.filter_action,
        count_values=count_values,
        total_value=total_value,
        average_value=average_value,
        submission_count=submission_count,
        anonymized_excluded_count=anonymized_excluded_count,
        **kwargs,
    )