summaryrefslogtreecommitdiff
path: root/patchwork/api/filters.py
diff options
context:
space:
mode:
Diffstat (limited to 'patchwork/api/filters.py')
-rw-r--r--patchwork/api/filters.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/patchwork/api/filters.py b/patchwork/api/filters.py
index deb5ace..93e6281 100644
--- a/patchwork/api/filters.py
+++ b/patchwork/api/filters.py
@@ -184,6 +184,10 @@ class SeriesFilterSet(TimestampMixin, BaseFilterSet):
fields = ('submitter', 'project')
+def msgid_filter(queryset, name, value):
+ return queryset.filter(**{name: '<' + value + '>'})
+
+
class CoverLetterFilterSet(TimestampMixin, BaseFilterSet):
project = ProjectFilter(queryset=Project.objects.all(), distinct=False)
@@ -192,6 +196,7 @@ class CoverLetterFilterSet(TimestampMixin, BaseFilterSet):
series = BaseFilter(queryset=Project.objects.all(),
widget=MultipleHiddenInput, distinct=False)
submitter = PersonFilter(queryset=Person.objects.all(), distinct=False)
+ msgid = CharFilter(method=msgid_filter)
class Meta:
model = CoverLetter
@@ -210,17 +215,18 @@ class PatchFilterSet(TimestampMixin, BaseFilterSet):
delegate = UserFilter(queryset=User.objects.all(), distinct=False)
state = StateFilter(queryset=State.objects.all(), distinct=False)
hash = CharFilter(lookup_expr='iexact')
+ msgid = CharFilter(method=msgid_filter)
class Meta:
model = Patch
- # NOTE(dja): ideally we want to version the hash field, but I cannot
- # find a way to do that which is reliable and not extremely ugly.
+ # NOTE(dja): ideally we want to version the hash/msgid field, but I
+ # can't find a way to do that which is reliable and not extremely ugly.
# The best I can come up with is manually working with request.GET
# which seems to rather defeat the point of using django-filters.
fields = ('project', 'series', 'submitter', 'delegate',
- 'state', 'archived', 'hash')
+ 'state', 'archived', 'hash', 'msgid')
versioned_fields = {
- '1.2': ('hash', ),
+ '1.2': ('hash', 'msgid'),
}