diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py index 24a9cbbcd0c863f5b5351380d1be5c0c5b0836b0..5e3a7a4c1784e38a6e35bee0033a45b3ec20734c 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 0000000000000000000000000000000000000000..ac6c489e2bfd59bc1bba21ec6c7dd714759602b5 --- /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 d189f2b85ed3a5df25a8726c725d3452cf64e327..120aae2a90cbea8954bda5d7fc0788e25a478601 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 aafa3a160e6798729bb0d7652d0c1f2b7304db94..9f324eef34535705afba60225bd81495a0d7686d 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 9fcadf0a6101c518a7f7ecf8b738f6a21ae2e0b0..794e3a13b602fa7908393dbf0cedefbf15239106 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 494dddcee15983d7449e477e9a7638d9befc2d1a..6235fd7d04c5bbb4ba16a2139893a36b58515617 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 130214c3a530d2f19b274576e2e58a65ec70ee07..58b7f5fa9ca65561291588c58f92d7039b357c2a 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 cc833d3a3d226d4c1e78b667860ff20423f5964d..d067705fa7d52a399a9f71cc59df9c8071aaa6ad 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 5001fb14db9db32bd129e0fdcefa3a04f60a848b..cc6ad49bb84d8b98edbf00d4d6df009613570c03 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'],