Fix #1011: Ensure tracks linked to skipped upload can be pruned

merge-requests/1094/merge
Agate 2020-05-07 13:51:29 +02:00
rodzic 8cd40699e8
commit c7a3dd9da5
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6B501DFD73514E14
3 zmienionych plików z 11 dodań i 2 usunięć

Wyświetl plik

@ -817,9 +817,15 @@ def get_prunable_tracks(
Returns a list of tracks with no associated uploads,
excluding the one that were listened/favorited/included in playlists.
"""
purgeable_tracks_with_upload = (
models.Upload.objects.exclude(track=None)
.filter(import_status="skipped")
.values("track")
)
queryset = models.Track.objects.all()
queryset = queryset.filter(uploads__isnull=True)
queryset = queryset.filter(
Q(uploads__isnull=True) | Q(pk__in=purgeable_tracks_with_upload)
)
if exclude_favorites:
queryset = queryset.filter(track_favorites__isnull=True)
if exclude_playlists:

Wyświetl plik

@ -867,6 +867,8 @@ def test_clean_transcoding_cache(preferences, now, factories):
def test_get_prunable_tracks(factories):
prunable_track = factories["music.Track"]()
# track is still prunable if it has a skipped upload linked to it
factories["music.Upload"](import_status="skipped", track=prunable_track)
# non prunable tracks
factories["music.Upload"]()
factories["favorites.TrackFavorite"]()

Wyświetl plik

@ -0,0 +1 @@
Ensure tracks linked to skipped upload can be pruned (#1011)