Skip to content

Commit a3de359

Browse files
committed
Added search filter for reports
1 parent 851b7c6 commit a3de359

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

api/filters.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ def filter_fully_predicted(self, queryset, name, value):
170170
field_name="report__country",
171171
queryset=EuropeCountry.objects.all(),
172172
)
173+
observation_short_id = filters.CharFilter(field_name="report__report_id", label="Observation short ID")
173174

174175
result_taxon_ids = filters.ModelMultipleChoiceFilter(
175176
field_name="taxon",

api/serializers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,7 @@ class Meta:
710710
read_only_fields = fields
711711

712712
uuid = BaseReportSerializer().fields['uuid']
713+
short_id = BaseReportSerializer().fields['short_id']
713714
# NOTE: user_uuid is used by AIMA for knowing who to send notifications.
714715
user_uuid = BaseReportSerializer().fields['user_uuid']
715716
created_at = BaseReportSerializer().fields['created_at']
@@ -724,6 +725,7 @@ class Meta:
724725
model = BaseReportSerializer.Meta.model
725726
fields = (
726727
"uuid",
728+
"short_id",
727729
"user_uuid",
728730
"created_at",
729731
"created_at_local",

api/views.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from rest_framework import status
1818
from rest_framework.decorators import action
1919
from rest_framework.exceptions import ValidationError
20+
from rest_framework.filters import SearchFilter
2021
from rest_framework.mixins import (
2122
CreateModelMixin,
2223
ListModelMixin,
@@ -242,7 +243,8 @@ class BaseReportViewSet(
242243

243244
lookup_url_kwarg = "uuid"
244245

245-
filter_backends = (DjangoFilterBackend,)
246+
filter_backends = (DjangoFilterBackend, SearchFilter)
247+
search_fields = ("report_id", "pk")
246248

247249
permission_classes = (ReportPermissions,)
248250

@@ -538,6 +540,8 @@ class IdentificationTaskViewSet(RetrieveModelMixin, ListModelMixin, GenericNoMob
538540
)
539541
serializer_class = IdentificationTaskSerializer
540542
filterset_class = IdentificationTaskFilter
543+
filter_backends = (DjangoFilterBackend, SearchFilter)
544+
search_fields = ("report__report_id", "pk")
541545
permission_classes = (IdentificationTaskPermissions | UserRolePermission,)
542546

543547
lookup_field = 'pk'

0 commit comments

Comments
 (0)