Skip to content
Snippets Groups Projects
Commit 2b474f35 authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Merge branch '179-ordering' into 'develop'

Resolve "Cannot order by ascending"

Closes #179

See merge request funkwhale/funkwhale!206
parents 54008aa3 47cc2a39
No related branches found
No related tags found
No related merge requests found
...@@ -153,11 +153,11 @@ class TrackViewSet(TagViewSetMixin, viewsets.ReadOnlyModelViewSet): ...@@ -153,11 +153,11 @@ class TrackViewSet(TagViewSetMixin, viewsets.ReadOnlyModelViewSet):
filter_class = filters.TrackFilter filter_class = filters.TrackFilter
ordering_fields = ( ordering_fields = (
'creation_date', 'creation_date',
'title__unaccent', 'title',
'album__title__unaccent', 'album__title',
'album__release_date', 'album__release_date',
'position', 'position',
'artist__name__unaccent', 'artist__name',
) )
def get_queryset(self): def get_queryset(self):
......
Fixed broken ordering in front-end lists (#179)
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<div class="field"> <div class="field">
<i18next tag="label" path="Ordering direction"/> <i18next tag="label" path="Ordering direction"/>
<select class="ui dropdown" v-model="orderingDirection"> <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> <option value="-"><i18next path="Descending"/></option>
</select> </select>
</div> </div>
...@@ -74,7 +74,7 @@ export default { ...@@ -74,7 +74,7 @@ export default {
Pagination Pagination
}, },
data () { data () {
let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || 'artist__name') let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
return { return {
results: null, results: null,
isLoading: false, isLoading: false,
...@@ -82,9 +82,10 @@ export default { ...@@ -82,9 +82,10 @@ export default {
previousLink: null, previousLink: null,
page: parseInt(this.defaultPage), page: parseInt(this.defaultPage),
paginateBy: parseInt(this.defaultPaginateBy || 25), paginateBy: parseInt(this.defaultPaginateBy || 25),
orderingDirection: defaultOrdering.direction, orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field, ordering: defaultOrdering.field,
orderingOptions: [ orderingOptions: [
['creation_date', 'Creation date'],
['title', 'Track name'], ['title', 'Track name'],
['album__title', 'Album name'], ['album__title', 'Album name'],
['artist__name', 'Artist name'] ['artist__name', 'Artist name']
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div class="field"> <div class="field">
<i18next tag="label" path="Ordering direction"/> <i18next tag="label" path="Ordering direction"/>
<select class="ui dropdown" v-model="orderingDirection"> <select class="ui dropdown" v-model="orderingDirection">
<option value="">Ascending</option> <option value="+">Ascending</option>
<option value="-">Descending</option> <option value="-">Descending</option>
</select> </select>
</div> </div>
...@@ -95,7 +95,7 @@ export default { ...@@ -95,7 +95,7 @@ export default {
page: parseInt(this.defaultPage), page: parseInt(this.defaultPage),
query: this.defaultQuery, query: this.defaultQuery,
paginateBy: parseInt(this.defaultPaginateBy || 12), paginateBy: parseInt(this.defaultPaginateBy || 12),
orderingDirection: defaultOrdering.direction, orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field, ordering: defaultOrdering.field,
orderingOptions: [ orderingOptions: [
['creation_date', 'Creation date'], ['creation_date', 'Creation date'],
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<div class="field"> <div class="field">
<i18next tag="label" path="Ordering direction"/> <i18next tag="label" path="Ordering direction"/>
<select class="ui dropdown" v-model="orderingDirection"> <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> <option value="-"><i18next path="Descending"/></option>
</select> </select>
</div> </div>
...@@ -99,7 +99,7 @@ export default { ...@@ -99,7 +99,7 @@ export default {
page: parseInt(this.defaultPage), page: parseInt(this.defaultPage),
query: this.defaultQuery, query: this.defaultQuery,
paginateBy: parseInt(this.defaultPaginateBy || 12), paginateBy: parseInt(this.defaultPaginateBy || 12),
orderingDirection: defaultOrdering.direction, orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field, ordering: defaultOrdering.field,
orderingOptions: [ orderingOptions: [
['creation_date', 'Creation date'], ['creation_date', 'Creation date'],
......
...@@ -13,13 +13,17 @@ export default { ...@@ -13,13 +13,17 @@ export default {
} }
} else { } else {
return { return {
direction: '', direction: '+',
field: s field: s
} }
} }
}, },
getOrderingAsString () { getOrderingAsString () {
return [this.orderingDirection, this.ordering].join('') let direction = this.orderingDirection
if (direction === '+') {
direction = ''
}
return [direction, this.ordering].join('')
} }
} }
} }
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<div class="field"> <div class="field">
<label>{{ $t('Ordering direction') }}</label> <label>{{ $t('Ordering direction') }}</label>
<select class="ui dropdown" v-model="orderingDirection"> <select class="ui dropdown" v-model="orderingDirection">
<option value="">Ascending</option> <option value="+">Ascending</option>
<option value="-">Descending</option> <option value="-">Descending</option>
</select> </select>
</div> </div>
...@@ -106,7 +106,7 @@ export default { ...@@ -106,7 +106,7 @@ export default {
page: parseInt(this.defaultPage), page: parseInt(this.defaultPage),
query: this.defaultQuery, query: this.defaultQuery,
paginateBy: parseInt(this.defaultPaginateBy || 12), paginateBy: parseInt(this.defaultPaginateBy || 12),
orderingDirection: defaultOrdering.direction, orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field, ordering: defaultOrdering.field,
status: this.defaultStatus || 'any' status: this.defaultStatus || 'any'
} }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<div class="field"> <div class="field">
<label>{{ $t('Ordering direction') }}</label> <label>{{ $t('Ordering direction') }}</label>
<select class="ui dropdown" v-model="orderingDirection"> <select class="ui dropdown" v-model="orderingDirection">
<option value="">{{ $t('Ascending') }}</option> <option value="+">{{ $t('Ascending') }}</option>
<option value="-">{{ $t('Descending') }}</option> <option value="-">{{ $t('Descending') }}</option>
</select> </select>
</div> </div>
...@@ -102,7 +102,7 @@ export default { ...@@ -102,7 +102,7 @@ export default {
page: parseInt(this.defaultPage), page: parseInt(this.defaultPage),
query: this.defaultQuery, query: this.defaultQuery,
paginateBy: parseInt(this.defaultPaginateBy || 50), paginateBy: parseInt(this.defaultPaginateBy || 50),
orderingDirection: defaultOrdering.direction, orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field, ordering: defaultOrdering.field,
orderingOptions: [ orderingOptions: [
['creation_date', 'Creation date'], ['creation_date', 'Creation date'],
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<div class="field"> <div class="field">
<label>{{ $t('Ordering direction') }}</label> <label>{{ $t('Ordering direction') }}</label>
<select class="ui dropdown" v-model="orderingDirection"> <select class="ui dropdown" v-model="orderingDirection">
<option value="">{{ $t('Ascending') }}</option> <option value="+">{{ $t('Ascending') }}</option>
<option value="-">{{ $t('Descending') }}</option> <option value="-">{{ $t('Descending') }}</option>
</select> </select>
</div> </div>
...@@ -83,7 +83,7 @@ export default { ...@@ -83,7 +83,7 @@ export default {
page: parseInt(this.defaultPage), page: parseInt(this.defaultPage),
query: this.defaultQuery, query: this.defaultQuery,
paginateBy: parseInt(this.defaultPaginateBy || 12), paginateBy: parseInt(this.defaultPaginateBy || 12),
orderingDirection: defaultOrdering.direction, orderingDirection: defaultOrdering.direction || '+',
ordering: defaultOrdering.field, ordering: defaultOrdering.field,
orderingOptions: [ orderingOptions: [
['creation_date', 'Creation date'], ['creation_date', 'Creation date'],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment