Fix #179: fixed broken ordering in front-end lists
This commit is contained in:
parent
54008aa37c
commit
47cc2a3920
|
@ -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):
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fixed broken ordering in front-end lists (#179)
|
|
@ -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 {
|
||||||
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 {
|
||||||
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 @@
|
||||||
<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 {
|
||||||
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 @@
|
||||||
<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 {
|
||||||
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 {
|
||||||
}
|
}
|
||||||
} 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 @@
|
||||||
<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 {
|
||||||
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 @@
|
||||||
<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 {
|
||||||
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 @@
|
||||||
<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 {
|
||||||
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'],
|
||||||
|
|
Loading…
Reference in New Issue