Skip to content
Snippets Groups Projects
Verified Commit aaced60e authored by Eliot Berriot's avatar Eliot Berriot
Browse files

See #432: added /action endpoint to manage tags in batch

parent 13f36bee
No related branches found
No related tags found
No related merge requests found
......@@ -592,3 +592,13 @@ class ManageTagSerializer(ManageBaseAlbumSerializer):
def get_artists_count(self, obj):
return getattr(obj, "_artists_count", None)
class ManageTagActionSerializer(common_serializers.ActionSerializer):
actions = [common_serializers.Action("delete", allow_all=False)]
filterset_class = filters.ManageTagFilterSet
pk_field = "name"
@transaction.atomic
def handle_delete(self, objects):
return objects.delete()
......@@ -493,3 +493,13 @@ class ManageTagViewSet(
),
)
return queryset
@rest_decorators.action(methods=["post"], detail=False)
def action(self, request, *args, **kwargs):
queryset = self.get_queryset()
serializer = serializers.ManageTagActionSerializer(
request.data, queryset=queryset
)
serializer.is_valid(raise_exception=True)
result = serializer.save()
return response.Response(result, status=200)
......@@ -487,6 +487,7 @@ def test_manage_upload_serializer(factories, now):
("music.Artist", serializers.ManageArtistActionSerializer),
("music.Library", serializers.ManageLibraryActionSerializer),
("music.Upload", serializers.ManageUploadActionSerializer),
("tags.Tag", serializers.ManageTagActionSerializer),
],
)
def test_action_serializer_delete(factory, serializer_class, factories):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment