From 47cc2a3920fecca516f2c8002388a0adf6da940e Mon Sep 17 00:00:00 2001 From: Eliot Berriot Date: Tue, 22 May 2018 23:30:37 +0200 Subject: [PATCH] Fix #179: fixed broken ordering in front-end lists --- api/funkwhale_api/music/views.py | 6 +++--- changes/changelog.d/179.bugfix | 1 + front/src/components/favorites/List.vue | 7 ++++--- front/src/components/library/Artists.vue | 4 ++-- front/src/components/library/Radios.vue | 4 ++-- front/src/components/mixins/Ordering.vue | 8 ++++++-- front/src/components/requests/RequestsList.vue | 4 ++-- front/src/views/federation/LibraryList.vue | 4 ++-- front/src/views/playlists/List.vue | 4 ++-- 9 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 changes/changelog.d/179.bugfix diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py index 24a9cbbcd..5e3a7a4c1 100644 --- a/api/funkwhale_api/music/views.py +++ b/api/funkwhale_api/music/views.py @@ -153,11 +153,11 @@ class TrackViewSet(TagViewSetMixin, viewsets.ReadOnlyModelViewSet): filter_class = filters.TrackFilter ordering_fields = ( 'creation_date', - 'title__unaccent', - 'album__title__unaccent', + 'title', + 'album__title', 'album__release_date', 'position', - 'artist__name__unaccent', + 'artist__name', ) def get_queryset(self): diff --git a/changes/changelog.d/179.bugfix b/changes/changelog.d/179.bugfix new file mode 100644 index 000000000..ac6c489e2 --- /dev/null +++ b/changes/changelog.d/179.bugfix @@ -0,0 +1 @@ +Fixed broken ordering in front-end lists (#179) diff --git a/front/src/components/favorites/List.vue b/front/src/components/favorites/List.vue index d189f2b85..120aae2a9 100644 --- a/front/src/components/favorites/List.vue +++ b/front/src/components/favorites/List.vue @@ -26,7 +26,7 @@
@@ -74,7 +74,7 @@ export default { Pagination }, data () { - let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || 'artist__name') + let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date') return { results: null, isLoading: false, @@ -82,9 +82,10 @@ export default { previousLink: null, page: parseInt(this.defaultPage), paginateBy: parseInt(this.defaultPaginateBy || 25), - orderingDirection: defaultOrdering.direction, + orderingDirection: defaultOrdering.direction || '+', ordering: defaultOrdering.field, orderingOptions: [ + ['creation_date', 'Creation date'], ['title', 'Track name'], ['album__title', 'Album name'], ['artist__name', 'Artist name'] diff --git a/front/src/components/library/Artists.vue b/front/src/components/library/Artists.vue index aafa3a160..9f324eef3 100644 --- a/front/src/components/library/Artists.vue +++ b/front/src/components/library/Artists.vue @@ -19,7 +19,7 @@
@@ -95,7 +95,7 @@ export default { page: parseInt(this.defaultPage), query: this.defaultQuery, paginateBy: parseInt(this.defaultPaginateBy || 12), - orderingDirection: defaultOrdering.direction, + orderingDirection: defaultOrdering.direction || '+', ordering: defaultOrdering.field, orderingOptions: [ ['creation_date', 'Creation date'], diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue index 9fcadf0a6..794e3a13b 100644 --- a/front/src/components/library/Radios.vue +++ b/front/src/components/library/Radios.vue @@ -23,7 +23,7 @@
@@ -99,7 +99,7 @@ export default { page: parseInt(this.defaultPage), query: this.defaultQuery, paginateBy: parseInt(this.defaultPaginateBy || 12), - orderingDirection: defaultOrdering.direction, + orderingDirection: defaultOrdering.direction || '+', ordering: defaultOrdering.field, orderingOptions: [ ['creation_date', 'Creation date'], diff --git a/front/src/components/mixins/Ordering.vue b/front/src/components/mixins/Ordering.vue index 494dddcee..6235fd7d0 100644 --- a/front/src/components/mixins/Ordering.vue +++ b/front/src/components/mixins/Ordering.vue @@ -13,13 +13,17 @@ export default { } } else { return { - direction: '', + direction: '+', field: s } } }, getOrderingAsString () { - return [this.orderingDirection, this.ordering].join('') + let direction = this.orderingDirection + if (direction === '+') { + direction = '' + } + return [direction, this.ordering].join('') } } } diff --git a/front/src/components/requests/RequestsList.vue b/front/src/components/requests/RequestsList.vue index 130214c3a..58b7f5fa9 100644 --- a/front/src/components/requests/RequestsList.vue +++ b/front/src/components/requests/RequestsList.vue @@ -29,7 +29,7 @@
@@ -106,7 +106,7 @@ export default { page: parseInt(this.defaultPage), query: this.defaultQuery, paginateBy: parseInt(this.defaultPaginateBy || 12), - orderingDirection: defaultOrdering.direction, + orderingDirection: defaultOrdering.direction || '+', ordering: defaultOrdering.field, status: this.defaultStatus || 'any' } diff --git a/front/src/views/federation/LibraryList.vue b/front/src/views/federation/LibraryList.vue index cc833d3a3..d067705fa 100644 --- a/front/src/views/federation/LibraryList.vue +++ b/front/src/views/federation/LibraryList.vue @@ -26,7 +26,7 @@
@@ -102,7 +102,7 @@ export default { page: parseInt(this.defaultPage), query: this.defaultQuery, paginateBy: parseInt(this.defaultPaginateBy || 50), - orderingDirection: defaultOrdering.direction, + orderingDirection: defaultOrdering.direction || '+', ordering: defaultOrdering.field, orderingOptions: [ ['creation_date', 'Creation date'], diff --git a/front/src/views/playlists/List.vue b/front/src/views/playlists/List.vue index 5001fb14d..cc6ad49bb 100644 --- a/front/src/views/playlists/List.vue +++ b/front/src/views/playlists/List.vue @@ -25,7 +25,7 @@
@@ -83,7 +83,7 @@ export default { page: parseInt(this.defaultPage), query: this.defaultQuery, paginateBy: parseInt(this.defaultPaginateBy || 12), - orderingDirection: defaultOrdering.direction, + orderingDirection: defaultOrdering.direction || '+', ordering: defaultOrdering.field, orderingOptions: [ ['creation_date', 'Creation date'],