diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index 6a55dfc00..d7a08b7a4 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -27,6 +27,7 @@ class APIModelMixin(models.Model): api_includes = [] creation_date = models.DateTimeField(default=timezone.now) import_hooks = [] + class Meta: abstract = True ordering = ['-creation_date'] @@ -291,6 +292,9 @@ class Track(APIModelMixin): ] tags = TaggableManager() + class Meta: + ordering = ['album', 'position'] + def __str__(self): return self.title @@ -386,6 +390,8 @@ class ImportJob(models.Model): ) status = models.CharField(choices=STATUS_CHOICES, default='pending', max_length=30) + class Meta: + ordering = ('id', ) @celery.app.task(name='ImportJob.run', filter=celery.task_method) def run(self, replace=False): try: diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py index e7d7399ad..6b839b9cf 100644 --- a/api/funkwhale_api/music/serializers.py +++ b/api/funkwhale_api/music/serializers.py @@ -62,7 +62,15 @@ class TrackSerializer(LyricsMixin): tags = TagSerializer(many=True, read_only=True) class Meta: model = models.Track - fields = ('id', 'mbid', 'title', 'artist', 'files', 'tags', 'lyrics') + fields = ( + 'id', + 'mbid', + 'title', + 'artist', + 'files', + 'tags', + 'position', + 'lyrics') class TrackSerializerNested(LyricsMixin): artist = ArtistSerializer() diff --git a/front/src/components/audio/album/Card.vue b/front/src/components/audio/album/Card.vue index fcdf1622d..7fd60d963 100644 --- a/front/src/components/audio/album/Card.vue +++ b/front/src/components/audio/album/Card.vue @@ -22,6 +22,9 @@