@@ -68,6 +68,7 @@ class CoverLetterList(ListAPIView):
serializer_class = CoverLetterListSerializer
filter_class = CoverLetterFilter
+ search_fields = ('name',)
def get_queryset(self):
qs = CoverLetter.objects.all().prefetch_related('series')\
@@ -119,6 +119,7 @@ class PatchList(ListAPIView):
permission_classes = (PatchworkPermission,)
serializer_class = PatchListSerializer
filter_class = PatchFilter
+ search_fields = ('name',)
def get_queryset(self):
return Patch.objects.all().with_tag_counts()\
@@ -46,7 +46,7 @@ class PersonMixin(object):
class PersonList(PersonMixin, ListAPIView):
"""List users."""
- pass
+ search_fields = ('name', 'email')
class PersonDetail(PersonMixin, RetrieveAPIView):
@@ -74,7 +74,8 @@ class ProjectMixin(object):
class ProjectList(ProjectMixin, ListAPIView):
"""List projects."""
- pass
+ search_fields = ('link_name', 'list_id', 'list_email', 'web_url',
+ 'scm_url', 'webscm_url')
class ProjectDetail(ProjectMixin, RetrieveUpdateAPIView):
@@ -56,6 +56,7 @@ class SeriesList(SeriesMixin, ListAPIView):
"""List series."""
filter_class = SeriesFilter
+ search_fields = ('name',)
class SeriesDetail(SeriesMixin, RetrieveAPIView):
@@ -56,7 +56,7 @@ class UserMixin(object):
class UserList(UserMixin, ListAPIView):
"""List users."""
- pass
+ search_fields = ('username', 'first_name', 'last_name', 'email')
class UserDetail(UserMixin, RetrieveUpdateAPIView):
@@ -146,7 +146,9 @@ REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'patchwork.api.base.LinkHeaderPagination',
'DEFAULT_FILTER_BACKENDS': (
'django_filters.rest_framework.DjangoFilterBackend',
+ 'rest_framework.filters.SearchFilter',
),
+ 'SEARCH_PARAM': 'q',
}
#
Search by way of the 'q' parameter on many endpoints. Signed-off-by: Stephen Finucane <stephen@that.guru> Cc: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Cc: Russell Currey <ruscur@russell.cc> --- patchwork/api/cover.py | 1 + patchwork/api/patch.py | 1 + patchwork/api/person.py | 2 +- patchwork/api/project.py | 3 ++- patchwork/api/series.py | 1 + patchwork/api/user.py | 2 +- patchwork/settings/base.py | 2 ++ 7 files changed, 9 insertions(+), 3 deletions(-)