From 47cc2a3920fecca516f2c8002388a0adf6da940e Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> 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 24a9cbbcd0..5e3a7a4c17 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 0000000000..ac6c489e2b --- /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 d189f2b85e..120aae2a90 100644 --- a/front/src/components/favorites/List.vue +++ b/front/src/components/favorites/List.vue @@ -26,7 +26,7 @@ <div class="field"> <i18next tag="label" path="Ordering direction"/> <select class="ui dropdown" v-model="orderingDirection"> - <option value=""><i18next path="Ascending"/></option> + <option value="+"><i18next path="Ascending"/></option> <option value="-"><i18next path="Descending"/></option> </select> </div> @@ -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 aafa3a160e..9f324eef34 100644 --- a/front/src/components/library/Artists.vue +++ b/front/src/components/library/Artists.vue @@ -19,7 +19,7 @@ <div class="field"> <i18next tag="label" path="Ordering direction"/> <select class="ui dropdown" v-model="orderingDirection"> - <option value="">Ascending</option> + <option value="+">Ascending</option> <option value="-">Descending</option> </select> </div> @@ -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 9fcadf0a61..794e3a13b6 100644 --- a/front/src/components/library/Radios.vue +++ b/front/src/components/library/Radios.vue @@ -23,7 +23,7 @@ <div class="field"> <i18next tag="label" path="Ordering direction"/> <select class="ui dropdown" v-model="orderingDirection"> - <option value=""><i18next path="Ascending"/></option> + <option value="+"><i18next path="Ascending"/></option> <option value="-"><i18next path="Descending"/></option> </select> </div> @@ -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 494dddcee1..6235fd7d04 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 130214c3a5..58b7f5fa9c 100644 --- a/front/src/components/requests/RequestsList.vue +++ b/front/src/components/requests/RequestsList.vue @@ -29,7 +29,7 @@ <div class="field"> <label>{{ $t('Ordering direction') }}</label> <select class="ui dropdown" v-model="orderingDirection"> - <option value="">Ascending</option> + <option value="+">Ascending</option> <option value="-">Descending</option> </select> </div> @@ -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 cc833d3a3d..d067705fa7 100644 --- a/front/src/views/federation/LibraryList.vue +++ b/front/src/views/federation/LibraryList.vue @@ -26,7 +26,7 @@ <div class="field"> <label>{{ $t('Ordering direction') }}</label> <select class="ui dropdown" v-model="orderingDirection"> - <option value="">{{ $t('Ascending') }}</option> + <option value="+">{{ $t('Ascending') }}</option> <option value="-">{{ $t('Descending') }}</option> </select> </div> @@ -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 5001fb14db..cc6ad49bb8 100644 --- a/front/src/views/playlists/List.vue +++ b/front/src/views/playlists/List.vue @@ -25,7 +25,7 @@ <div class="field"> <label>{{ $t('Ordering direction') }}</label> <select class="ui dropdown" v-model="orderingDirection"> - <option value="">{{ $t('Ascending') }}</option> + <option value="+">{{ $t('Ascending') }}</option> <option value="-">{{ $t('Descending') }}</option> </select> </div> @@ -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'], -- GitLab