Can now search in library tracks
This commit is contained in:
parent
57bf43bb96
commit
2cef58e6c1
|
@ -1,5 +1,9 @@
|
|||
import django_filters
|
||||
|
||||
from django.db import models
|
||||
|
||||
from funkwhale_api.music import utils
|
||||
|
||||
|
||||
PRIVACY_LEVEL_CHOICES = [
|
||||
('me', 'Only me'),
|
||||
|
@ -25,3 +29,15 @@ def privacy_level_query(user, lookup_field='privacy_level'):
|
|||
'followers', 'instance', 'everyone'
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
class SearchFilter(django_filters.CharFilter):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.search_fields = kwargs.pop('search_fields')
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def filter(self, qs, value):
|
||||
if not value:
|
||||
return qs
|
||||
query = utils.get_query(value, self.search_fields)
|
||||
return qs.filter(query)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import django_filters
|
||||
|
||||
from funkwhale_api.common import fields
|
||||
|
||||
from . import models
|
||||
|
||||
|
||||
|
@ -19,6 +21,12 @@ class LibraryFilter(django_filters.FilterSet):
|
|||
|
||||
class LibraryTrackFilter(django_filters.FilterSet):
|
||||
library = django_filters.CharFilter('library__uuid')
|
||||
q = fields.SearchFilter(search_fields=[
|
||||
'artist_name',
|
||||
'title',
|
||||
'album_title',
|
||||
'library__actor__domain',
|
||||
])
|
||||
|
||||
class Meta:
|
||||
model = models.LibraryTrack
|
||||
|
|
Loading…
Reference in New Issue