From bf611f2ecdc592ce3e494d58a0aac5416fa48d45 Mon Sep 17 00:00:00 2001
From: Agate <me@agate.blue>
Date: Thu, 3 Sep 2020 15:58:26 +0200
Subject: [PATCH] Fix #1217: Fixed "scope=subscribed" on albums, artists,
 uploads and libraries API

---
 api/funkwhale_api/music/filters.py | 16 ++++++++++++----
 changes/changelog.d/1217.bugfix    |  1 +
 2 files changed, 13 insertions(+), 4 deletions(-)
 create mode 100644 changes/changelog.d/1217.bugfix

diff --git a/api/funkwhale_api/music/filters.py b/api/funkwhale_api/music/filters.py
index f9eba868a0..f38b4d9cd4 100644
--- a/api/funkwhale_api/music/filters.py
+++ b/api/funkwhale_api/music/filters.py
@@ -104,7 +104,9 @@ class ArtistFilter(
     has_albums = filters.BooleanFilter(field_name="_", method="filter_has_albums")
     tag = TAG_FILTER
     scope = common_filters.ActorScopeFilter(
-        actor_field="tracks__uploads__library__actor", distinct=True
+        actor_field="tracks__uploads__library__actor",
+        distinct=True,
+        library_field="tracks__uploads__library",
     )
     ordering = django_filters.OrderingFilter(
         fields=(
@@ -207,7 +209,9 @@ class UploadFilter(audio_filters.IncludeChannelsFilterSet):
     album_artist = filters.UUIDFilter("track__album__artist__uuid")
     library = filters.UUIDFilter("library__uuid")
     playable = filters.BooleanFilter(field_name="_", method="filter_playable")
-    scope = common_filters.ActorScopeFilter(actor_field="library__actor", distinct=True)
+    scope = common_filters.ActorScopeFilter(
+        actor_field="library__actor", distinct=True, library_field="library",
+    )
     import_status = common_filters.MultipleQueryFilter(coerce=str)
     q = fields.SmartSearchFilter(
         config=search.SearchConfig(
@@ -255,7 +259,9 @@ class AlbumFilter(
     )
     tag = TAG_FILTER
     scope = common_filters.ActorScopeFilter(
-        actor_field="tracks__uploads__library__actor", distinct=True
+        actor_field="tracks__uploads__library__actor",
+        distinct=True,
+        library_field="tracks__uploads__library",
     )
 
     ordering = django_filters.OrderingFilter(
@@ -284,7 +290,9 @@ class AlbumFilter(
 
 class LibraryFilter(filters.FilterSet):
     q = fields.SearchFilter(search_fields=["name"],)
-    scope = common_filters.ActorScopeFilter(actor_field="actor", distinct=True)
+    scope = common_filters.ActorScopeFilter(
+        actor_field="actor", distinct=True, library_field="pk",
+    )
 
     class Meta:
         model = models.Library
diff --git a/changes/changelog.d/1217.bugfix b/changes/changelog.d/1217.bugfix
new file mode 100644
index 0000000000..c4306a50eb
--- /dev/null
+++ b/changes/changelog.d/1217.bugfix
@@ -0,0 +1 @@
+Fixed "scope=subscribed" on albums, artists, uploads and libraries API (#1217)
\ No newline at end of file
-- 
GitLab