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):
|
class TagsFilter(Filter):
|
||||||
|
|
||||||
def __init__(self, exclude=False):
|
def __init__(self, exclude=False, in_list=False):
|
||||||
super(TagsFilter, self).__init__()
|
super(TagsFilter, self).__init__()
|
||||||
self.exclude = exclude
|
self.exclude = exclude
|
||||||
|
self.in_list = in_list
|
||||||
|
|
||||||
def filter(self, qs, value):
|
def filter(self, qs, value):
|
||||||
if not value:
|
if not value:
|
||||||
@ -50,11 +51,14 @@ class TagsFilter(Filter):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
for tag_id in tag_ids:
|
if self.in_list:
|
||||||
if self.exclude:
|
qs = qs.filter(tags__id__in=tag_ids).distinct()
|
||||||
qs = qs.exclude(tags__id=tag_id)
|
else:
|
||||||
else:
|
for tag_id in tag_ids:
|
||||||
qs = qs.filter(tags__id=tag_id)
|
if self.exclude:
|
||||||
|
qs = qs.exclude(tags__id=tag_id)
|
||||||
|
else:
|
||||||
|
qs = qs.filter(tags__id=tag_id)
|
||||||
|
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
@ -83,6 +87,8 @@ class DocumentFilterSet(FilterSet):
|
|||||||
|
|
||||||
tags__id__none = TagsFilter(exclude=True)
|
tags__id__none = TagsFilter(exclude=True)
|
||||||
|
|
||||||
|
tags__id__in = TagsFilter(in_list=True)
|
||||||
|
|
||||||
is_in_inbox = InboxFilter()
|
is_in_inbox = InboxFilter()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user