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

This commit is contained in:
Agate 2020-05-07 13:51:29 +02:00
parent 8cd40699e8
commit c7a3dd9da5
No known key found for this signature in database
GPG key ID: 6B501DFD73514E14
3 changed files with 11 additions and 2 deletions

View file

@ -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: