Resolve "Track position don't take care about disc number"

This commit is contained in:
Eliot Berriot 2018-12-06 08:53:31 +00:00
parent 16aef2e597
commit a493d34b8f
14 changed files with 82 additions and 17 deletions

View file

@ -440,6 +440,12 @@ class TrackQuerySet(models.QuerySet):
models.Prefetch("uploads", queryset=uploads, to_attr="playable_uploads")
)
def order_for_album(self):
"""
Order by disc number then position
"""
return self.order_by("disc_number", "position", "title")
def get_artist(release_list):
return Artist.get_or_create_from_api(
@ -450,6 +456,7 @@ def get_artist(release_list):
class Track(APIModelMixin):
title = models.CharField(max_length=255)
artist = models.ForeignKey(Artist, related_name="tracks", on_delete=models.CASCADE)
disc_number = models.PositiveIntegerField(null=True, blank=True)
position = models.PositiveIntegerField(null=True, blank=True)
album = models.ForeignKey(
Album, related_name="tracks", null=True, blank=True, on_delete=models.CASCADE
@ -485,7 +492,7 @@ class Track(APIModelMixin):
tags = TaggableManager(blank=True)
class Meta:
ordering = ["album", "position"]
ordering = ["album", "disc_number", "position"]
def __str__(self):
return self.title