kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
60 wiersze
1.7 KiB
Python
60 wiersze
1.7 KiB
Python
import django_filters.widgets
|
|
|
|
from funkwhale_api.common import fields
|
|
|
|
from . import models
|
|
|
|
|
|
class FollowFilter(django_filters.FilterSet):
|
|
pending = django_filters.CharFilter(method="filter_pending")
|
|
ordering = django_filters.OrderingFilter(
|
|
# tuple-mapping retains order
|
|
fields=(
|
|
("creation_date", "creation_date"),
|
|
("modification_date", "modification_date"),
|
|
)
|
|
)
|
|
q = fields.SearchFilter(
|
|
search_fields=["actor__domain", "actor__preferred_username"]
|
|
)
|
|
|
|
class Meta:
|
|
model = models.Follow
|
|
fields = ["approved", "pending", "q"]
|
|
|
|
def filter_pending(self, queryset, field_name, value):
|
|
if value.lower() in ["true", "1", "yes"]:
|
|
queryset = queryset.filter(approved__isnull=True)
|
|
return queryset
|
|
|
|
|
|
class LibraryFollowFilter(django_filters.FilterSet):
|
|
class Meta:
|
|
model = models.LibraryFollow
|
|
fields = ["approved"]
|
|
|
|
|
|
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)
|
|
|
|
|
|
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"]
|