diff --git a/api/config/urls.py b/api/config/urls.py index 8c490a5e6..de67ebb57 100644 --- a/api/config/urls.py +++ b/api/config/urls.py @@ -31,3 +31,9 @@ if settings.DEBUG: url(r'^404/$', default_views.page_not_found), url(r'^500/$', default_views.server_error), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + + if 'debug_toolbar' in settings.INSTALLED_APPS: + import debug_toolbar + urlpatterns += [ + url(r'^__debug__/', include(debug_toolbar.urls)), + ] diff --git a/api/funkwhale_api/music/filters.py b/api/funkwhale_api/music/filters.py index ba3fa453d..ff937a0f5 100644 --- a/api/funkwhale_api/music/filters.py +++ b/api/funkwhale_api/music/filters.py @@ -8,5 +8,5 @@ class ArtistFilter(django_filters.FilterSet): class Meta: model = models.Artist fields = { - 'name': ['exact', 'iexact', 'startswith'] + 'name': ['exact', 'iexact', 'startswith', 'icontains'] } diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py index 43daf9d5a..cf9d87490 100644 --- a/api/funkwhale_api/music/serializers.py +++ b/api/funkwhale_api/music/serializers.py @@ -13,14 +13,14 @@ class TagSerializer(serializers.ModelSerializer): class SimpleArtistSerializer(serializers.ModelSerializer): class Meta: model = models.Artist - fields = ('id', 'mbid', 'name') + fields = ('id', 'mbid', 'name', 'creation_date') class ArtistSerializer(serializers.ModelSerializer): tags = TagSerializer(many=True, read_only=True) class Meta: model = models.Artist - fields = ('id', 'mbid', 'name', 'tags') + fields = ('id', 'mbid', 'name', 'tags', 'creation_date') class TrackFileSerializer(serializers.ModelSerializer): diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py index c32fa8f7f..5bfefc29b 100644 --- a/api/funkwhale_api/music/views.py +++ b/api/funkwhale_api/music/views.py @@ -47,16 +47,15 @@ class TagViewSetMixin(object): class ArtistViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet): queryset = ( models.Artist.objects.all() - .order_by('name') .prefetch_related( 'albums__tracks__files', + 'albums__tracks__artist', 'albums__tracks__tags')) serializer_class = serializers.ArtistSerializerNested permission_classes = [ConditionalAuthentication] search_fields = ['name'] - ordering_fields = ('creation_date', 'name') filter_class = filters.ArtistFilter - + ordering_fields = ('id', 'name', 'creation_date') class AlbumViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet): queryset = ( diff --git a/front/src/App.vue b/front/src/App.vue index f81d7d3da..c1c087499 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -1,7 +1,7 @@