Skip to content

Commit d9a7468

Browse files
committed
Enable filtering accounts by account number
This also requires a `cons_acct_num` parameter to be given, otherwise no results will be returned.
1 parent 3a32758 commit d9a7468

2 files changed

Lines changed: 21 additions & 4 deletions

File tree

django/evaluate_m2/filters.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import django_filters.rest_framework
22

33
from evaluate_m2.models import EvaluatorResult
4+
from parse_m2.models import AccountActivity
45

56

67
class AnyCharFilter(django_filters.BaseInFilter, django_filters.CharFilter):
@@ -186,3 +187,21 @@ class Meta:
186187
"smpa",
187188
"sort",
188189
]
190+
191+
192+
class AccountListFilterSet(django_filters.rest_framework.FilterSet):
193+
cons_acct_num = django_filters.BaseInFilter(
194+
field_name="cons_acct_num",
195+
lookup_expr="in"
196+
)
197+
198+
class Meta:
199+
model = AccountActivity
200+
fields = ["cons_acct_num"]
201+
202+
# Require a specific list of accounts to filter, otherwise this
203+
# filter will return an empty queryset.
204+
def filter_queryset(self, queryset):
205+
if not self.form.cleaned_data.get("cons_acct_num"):
206+
return queryset.none()
207+
return super().filter_queryset(queryset)

django/evaluate_m2/views.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from django_application.s3_utils import s3_session
1717
from evaluate_m2 import upload_utils
1818
from evaluate_m2.exception_utils import get_evaluate_m2_not_found_exception
19-
from evaluate_m2.filters import EvaluatorResultFilterSet
19+
from evaluate_m2.filters import AccountListFilterSet, EvaluatorResultFilterSet
2020
from evaluate_m2.models import (
2121
EvaluatorMetadata,
2222
EvaluatorResult,
@@ -327,13 +327,11 @@ def list(self, request, *args, **kwargs):
327327
return self.get_paginated_response(serializer.data)
328328

329329

330-
331-
332330
class AccountsListView(generics.ListAPIView):
333331
filter_backends = [
334332
django_filters.rest_framework.DjangoFilterBackend,
335333
]
336-
# filterset_class = EvaluatorResultFilterSet
334+
filterset_class = AccountListFilterSet
337335

338336
def get_queryset(self):
339337
event_id = self.kwargs["event_id"]

0 commit comments

Comments
 (0)