From: Stephen Finucane Date: Mon, 14 Nov 2016 00:05:37 +0000 (+0000) Subject: REST: Integrate searching X-Git-Tag: v2.0.0-rc1~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12a6c4f16d37a226d3f33d015e916acc4ba33401;p=thirdparty%2Fpatchwork.git REST: Integrate searching Search by way of the 'q' parameter on many endpoints. Signed-off-by: Stephen Finucane --- diff --git a/patchwork/api/cover.py b/patchwork/api/cover.py index 6374ce9e..0b6b546c 100644 --- a/patchwork/api/cover.py +++ b/patchwork/api/cover.py @@ -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')\ diff --git a/patchwork/api/patch.py b/patchwork/api/patch.py index d12464f9..fc5a0ee1 100644 --- a/patchwork/api/patch.py +++ b/patchwork/api/patch.py @@ -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()\ diff --git a/patchwork/api/person.py b/patchwork/api/person.py index 2c1ca15d..10cf781c 100644 --- a/patchwork/api/person.py +++ b/patchwork/api/person.py @@ -46,7 +46,7 @@ class PersonMixin(object): class PersonList(PersonMixin, ListAPIView): """List users.""" - pass + search_fields = ('name', 'email') class PersonDetail(PersonMixin, RetrieveAPIView): diff --git a/patchwork/api/project.py b/patchwork/api/project.py index 3cc2c325..8901ab48 100644 --- a/patchwork/api/project.py +++ b/patchwork/api/project.py @@ -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): diff --git a/patchwork/api/series.py b/patchwork/api/series.py index dc360d53..7e40a321 100644 --- a/patchwork/api/series.py +++ b/patchwork/api/series.py @@ -58,6 +58,7 @@ class SeriesList(SeriesMixin, ListAPIView): """List series.""" filter_class = SeriesFilter + search_fields = ('name',) class SeriesDetail(SeriesMixin, RetrieveAPIView): diff --git a/patchwork/api/user.py b/patchwork/api/user.py index 2153cc9b..2c9f71b4 100644 --- a/patchwork/api/user.py +++ b/patchwork/api/user.py @@ -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): diff --git a/patchwork/settings/base.py b/patchwork/settings/base.py index 35b85c7d..82fd9c2a 100644 --- a/patchwork/settings/base.py +++ b/patchwork/settings/base.py @@ -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', } #