Merge branch '986-playlist-track-count' into 'develop'
Resolve "Skipped upload increased count on playlist" Closes #986 See merge request funkwhale/funkwhale!970
This commit is contained in:
commit
cae6166fe4
|
@ -589,7 +589,12 @@ CELERY_BEAT_SCHEDULE = {
|
||||||
},
|
},
|
||||||
"federation.refresh_nodeinfo_known_nodes": {
|
"federation.refresh_nodeinfo_known_nodes": {
|
||||||
"task": "federation.refresh_nodeinfo_known_nodes",
|
"task": "federation.refresh_nodeinfo_known_nodes",
|
||||||
"schedule": crontab(minute="0", hour="*"),
|
"schedule": crontab(
|
||||||
|
**env.dict(
|
||||||
|
"SCHEDULE_FEDERATION_REFRESH_NODEINFO_KNOWN_NODES",
|
||||||
|
default={"minute": "0", "hour": "*"},
|
||||||
|
)
|
||||||
|
),
|
||||||
"options": {"expires": 60 * 60},
|
"options": {"expires": 60 * 60},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ class PlaylistViewSet(
|
||||||
queryset = (
|
queryset = (
|
||||||
models.Playlist.objects.all()
|
models.Playlist.objects.all()
|
||||||
.select_related("user__actor")
|
.select_related("user__actor")
|
||||||
.annotate(tracks_count=Count("playlist_tracks"))
|
.annotate(tracks_count=Count("playlist_tracks", distinct=True))
|
||||||
.with_covers()
|
.with_covers()
|
||||||
.with_duration()
|
.with_duration()
|
||||||
)
|
)
|
||||||
|
|
|
@ -25,6 +25,18 @@ def test_serializer_includes_tracks_count(factories, logged_in_api_client):
|
||||||
assert response.data["tracks_count"] == 1
|
assert response.data["tracks_count"] == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_serializer_includes_tracks_count_986(factories, logged_in_api_client):
|
||||||
|
playlist = factories["playlists.Playlist"]()
|
||||||
|
plt = factories["playlists.PlaylistTrack"](playlist=playlist)
|
||||||
|
factories["music.Upload"].create_batch(
|
||||||
|
3, track=plt.track, library__privacy_level="everyone", import_status="finished"
|
||||||
|
)
|
||||||
|
url = reverse("api:v1:playlists-detail", kwargs={"pk": playlist.pk})
|
||||||
|
response = logged_in_api_client.get(url)
|
||||||
|
|
||||||
|
assert response.data["tracks_count"] == 1
|
||||||
|
|
||||||
|
|
||||||
def test_serializer_includes_is_playable(factories, logged_in_api_client):
|
def test_serializer_includes_is_playable(factories, logged_in_api_client):
|
||||||
playlist = factories["playlists.Playlist"]()
|
playlist = factories["playlists.Playlist"]()
|
||||||
factories["playlists.PlaylistTrack"](playlist=playlist)
|
factories["playlists.PlaylistTrack"](playlist=playlist)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fixed invalid displayed number of tracks in playlist (#986)
|
|
@ -120,7 +120,9 @@
|
||||||
<template slot="row-cells" slot-scope="scope">
|
<template slot="row-cells" slot-scope="scope">
|
||||||
<template v-if="scope.obj.track">
|
<template v-if="scope.obj.track">
|
||||||
<td>
|
<td>
|
||||||
<span :title="scope.obj.track.title">{{ scope.obj.track.title|truncate(25) }}</span>
|
<router-link :to="{name: 'library.tracks.detail', params: {id: scope.obj.track.id }}" :title="scope.obj.track.title">
|
||||||
|
{{ scope.obj.track.title|truncate(25) }}
|
||||||
|
</router-link>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span
|
<span
|
||||||
|
|
Loading…
Reference in New Issue