mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Update API filters for "any" tag_id
This commit is contained in:
parent
79059b9aa7
commit
893dcd9f28
@ -37,9 +37,10 @@ class DocumentTypeFilterSet(FilterSet):
|
||||
|
||||
class TagsFilter(Filter):
|
||||
|
||||
def __init__(self, exclude=False):
|
||||
def __init__(self, exclude=False, in_list=False):
|
||||
super(TagsFilter, self).__init__()
|
||||
self.exclude = exclude
|
||||
self.in_list = in_list
|
||||
|
||||
def filter(self, qs, value):
|
||||
if not value:
|
||||
@ -50,11 +51,14 @@ class TagsFilter(Filter):
|
||||
except ValueError:
|
||||
return qs
|
||||
|
||||
for tag_id in tag_ids:
|
||||
if self.exclude:
|
||||
qs = qs.exclude(tags__id=tag_id)
|
||||
else:
|
||||
qs = qs.filter(tags__id=tag_id)
|
||||
if self.in_list:
|
||||
qs = qs.filter(tags__id__in=tag_ids).distinct()
|
||||
else:
|
||||
for tag_id in tag_ids:
|
||||
if self.exclude:
|
||||
qs = qs.exclude(tags__id=tag_id)
|
||||
else:
|
||||
qs = qs.filter(tags__id=tag_id)
|
||||
|
||||
return qs
|
||||
|
||||
@ -83,6 +87,8 @@ class DocumentFilterSet(FilterSet):
|
||||
|
||||
tags__id__none = TagsFilter(exclude=True)
|
||||
|
||||
tags__id__in = TagsFilter(in_list=True)
|
||||
|
||||
is_in_inbox = InboxFilter()
|
||||
|
||||
class Meta:
|
||||
|
Loading…
x
Reference in New Issue
Block a user