Skip to content

Commit

Permalink
api: Support filtering series by reviewer
Browse files Browse the repository at this point in the history
We'd like to filter by reviewer, including series with no reviewer.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
  • Loading branch information
Damien Lespiau committed Feb 4, 2016
1 parent 82d94a5 commit 1a48d6b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
8 changes: 6 additions & 2 deletions docs/rest.rst
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,9 @@ A series has then ``n`` revisions, ``n`` going from ``1`` to ``version``.
:query submitter: Filter series by submitter ``id``. ``self`` can be used
as a special value meaning the current logged in user.

:query reviewer: Filter series by reviewer ``id`` or ``null`` for no
reviewer assigned.

:query submitted_since: Retrieve only submitted series newer than a
specified time. Format is the same as ``submitted``
in response, an ISO 8601 date.
Expand Down Expand Up @@ -571,8 +574,9 @@ API Revisions

- /series/${id}/revisions/${version}/test-results/

- Add the `submitter`, `submitted_since`, `updated_since`, `submitted_before`
and `updated_before` query parameters to the list of series entry points.
- Add the `submitter`, `reviewer`, `submitted_since`, `updated_since`,
`submitted_before` and `updated_before` query parameters to the list of
series entry points.

**Revision 2**

Expand Down
10 changes: 10 additions & 0 deletions patchwork/views/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,21 @@ def submitter_filter(self, queryset, submitter):
queryset = queryset.filter(submitter__in=people)
return queryset

def reviewer_filter(queryset, reviewer):
try:
reviewer = int(reviewer)
queryset = queryset.filter(reviewer=reviewer)
except ValueError:
if reviewer == 'null':
queryset = queryset.filter(reviewer__isnull=True)
return queryset

submitted_since = django_filters.CharFilter(action=submitted_since_filter)
updated_since = django_filters.CharFilter(action=updated_since_filter)
submitted_before = django_filters.CharFilter(action=submitted_before_filter)
updated_before = django_filters.CharFilter(action=updated_before_filter)
submitter = django_filters.MethodFilter(action='submitter_filter')
reviewer = django_filters.MethodFilter(action=reviewer_filter)

class Meta:
model = Series
Expand Down

0 comments on commit 1a48d6b

Please sign in to comment.