Skip to content

Filters

hypha.apply.projects.reports.filters

DateRangeInputWidget

DateRangeInputWidget(attrs=None)

Bases: SuffixedMultiWidget

Source code in hypha/apply/projects/reports/filters.py
def __init__(self, attrs=None):
    widgets = (forms.DateInput, forms.DateInput)
    super().__init__(widgets, attrs)

template_name class-attribute instance-attribute

template_name = 'application_projects/filters/widgets/date_range_input_widget.html'

suffixes class-attribute instance-attribute

suffixes = ['after', 'before']

decompress

decompress(value)
Source code in hypha/apply/projects/reports/filters.py
def decompress(self, value):
    if value:
        return [value.start, value.stop]
    return [None, None]

ReportingFilter

Bases: FilterSet

current_report_status class-attribute instance-attribute

current_report_status = MultipleChoiceFilter(label=gettext_lazy('Status'), choices=[('Not started', 'Not started'), ('In progress', 'In progress'), ('Submitted', 'Submitted')])

ReportListFilter

Bases: FilterSet

reporting_period class-attribute instance-attribute

reporting_period = DateFromToRangeFilter(label=gettext_lazy('Reporting Period'), method='filter_reporting_period', widget=DateRangeInputWidget)

submitted class-attribute instance-attribute

submitted = DateFromToRangeFilter(widget=DateRangeInputWidget)

Meta

model class-attribute instance-attribute
model = Report
fields class-attribute instance-attribute
fields = ['submitted']

filter_reporting_period

filter_reporting_period(queryset, name, value)
Source code in hypha/apply/projects/reports/filters.py
def filter_reporting_period(self, queryset, name, value):
    after, before = value.start, value.stop
    q = {}
    if after:
        q["start__gte"] = after
    if before:
        q["end_date__lte"] = before

    return queryset.filter(**q)