From 4845325612a9e24d6dc57af32c2cf1c74f2865d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Schieli?= Date: Sun, 11 Oct 2020 16:14:58 +0200 Subject: [PATCH] Allow genre tags to be updated when rescanning files in-place --- api/funkwhale_api/music/tasks.py | 2 ++ api/tests/music/test_tasks.py | 4 ++++ changes/changelog.d/1246.enhancement | 1 + docs/admin/importing-music.rst | 1 + 4 files changed, 8 insertions(+) create mode 100644 changes/changelog.d/1246.enhancement diff --git a/api/funkwhale_api/music/tasks.py b/api/funkwhale_api/music/tasks.py index fa8e69591..b01f68e5f 100644 --- a/api/funkwhale_api/music/tasks.py +++ b/api/funkwhale_api/music/tasks.py @@ -937,6 +937,8 @@ def update_track_metadata(audio_metadata, track): if obj_updated_fields: obj.save(update_fields=obj_updated_fields) + tags_models.set_tags(track, *new_data.get("tags", [])) + if track.album and "album" in new_data and new_data["album"].get("cover_data"): common_utils.attach_file( track.album, "attachment_cover", new_data["album"].get("cover_data") diff --git a/api/tests/music/test_tasks.py b/api/tests/music/test_tasks.py index 573f04f1f..414bf95e7 100644 --- a/api/tests/music/test_tasks.py +++ b/api/tests/music/test_tasks.py @@ -1364,6 +1364,7 @@ def test_update_track_metadata(factories): "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/", "copyright": "Someone", "comment": "hello there", + "genre": "classical", } tasks.update_track_metadata(metadata.FakeMetadata(data), track) @@ -1382,6 +1383,9 @@ def test_update_track_metadata(factories): assert str(track.artist.mbid) == data["musicbrainz_artistid"] assert track.album.artist.name == "Edvard Grieg" assert str(track.album.artist.mbid) == "013c8e5b-d72a-4cd3-8dee-6c64d6125823" + assert sorted(track.tagged_items.values_list("tag__name", flat=True)) == [ + "classical" + ] def test_fs_import_not_pending(factories): diff --git a/changes/changelog.d/1246.enhancement b/changes/changelog.d/1246.enhancement new file mode 100644 index 000000000..10edbfb23 --- /dev/null +++ b/changes/changelog.d/1246.enhancement @@ -0,0 +1 @@ +Allow genre tags to be updated when rescanning files in-place (#1246) diff --git a/docs/admin/importing-music.rst b/docs/admin/importing-music.rst index 4cd71c2f9..f75a6133e 100644 --- a/docs/admin/importing-music.rst +++ b/docs/admin/importing-music.rst @@ -145,6 +145,7 @@ Funkwhale will pick up the new title. The following fields can be updated this w - Track title - Track position and disc number - Track license and copyright +- Track genre - Album cover - Album title - Album mbid