funkwhale/api/funkwhale_api/federation/filters.py

60 wiersze
1.7 KiB
Python
Czysty Zwykły widok Historia

2018-09-13 15:18:23 +00:00
import django_filters.widgets
2018-04-12 21:02:41 +00:00
from funkwhale_api.common import fields
from . import models
class FollowFilter(django_filters.FilterSet):
2018-06-09 13:36:16 +00:00
pending = django_filters.CharFilter(method="filter_pending")
ordering = django_filters.OrderingFilter(
# tuple-mapping retains order
fields=(
2018-06-09 13:36:16 +00:00
("creation_date", "creation_date"),
("modification_date", "modification_date"),
)
)
q = fields.SearchFilter(
search_fields=["actor__domain", "actor__preferred_username"]
)
class Meta:
model = models.Follow
2020-07-18 08:29:22 +00:00
fields = ["approved"]
2018-04-14 16:50:37 +00:00
def filter_pending(self, queryset, field_name, value):
2018-06-09 13:36:16 +00:00
if value.lower() in ["true", "1", "yes"]:
2018-04-14 16:50:37 +00:00
queryset = queryset.filter(approved__isnull=True)
return queryset
class LibraryFollowFilter(django_filters.FilterSet):
class Meta:
model = models.LibraryFollow
fields = ["approved"]
2018-09-13 15:18:23 +00:00
class InboxItemFilter(django_filters.FilterSet):
is_read = django_filters.BooleanFilter(
"is_read", widget=django_filters.widgets.BooleanWidget()
)
before = django_filters.NumberFilter(method="filter_before")
class Meta:
model = models.InboxItem
fields = ["is_read", "activity__type", "activity__actor"]
def filter_before(self, queryset, field_name, value):
return queryset.filter(pk__lte=value)
2019-04-18 12:37:17 +00:00
class FetchFilter(django_filters.FilterSet):
ordering = django_filters.OrderingFilter(
# tuple-mapping retains order
fields=(("creation_date", "creation_date"), ("fetch_date", "fetch_date"))
)
class Meta:
model = models.Fetch
fields = ["status", "object_id", "url"]