Can now filter by import status on library tracks
This commit is contained in:
parent
183bbe3ad6
commit
5fee42f896
|
@ -24,6 +24,7 @@ class LibraryFilter(django_filters.FilterSet):
|
||||||
|
|
||||||
class LibraryTrackFilter(django_filters.FilterSet):
|
class LibraryTrackFilter(django_filters.FilterSet):
|
||||||
library = django_filters.CharFilter('library__uuid')
|
library = django_filters.CharFilter('library__uuid')
|
||||||
|
imported = django_filters.CharFilter(method='filter_imported')
|
||||||
q = fields.SearchFilter(search_fields=[
|
q = fields.SearchFilter(search_fields=[
|
||||||
'artist_name',
|
'artist_name',
|
||||||
'title',
|
'title',
|
||||||
|
@ -31,6 +32,13 @@ class LibraryTrackFilter(django_filters.FilterSet):
|
||||||
'library__actor__domain',
|
'library__actor__domain',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
def filter_imported(self, queryset, field_name, value):
|
||||||
|
if value.lower() in ['true', '1', 'yes']:
|
||||||
|
queryset = queryset.filter(local_track_file__isnull=False)
|
||||||
|
elif value.lower() in ['false', '0', 'no']:
|
||||||
|
queryset = queryset.filter(local_track_file__isnull=True)
|
||||||
|
return queryset
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.LibraryTrack
|
model = models.LibraryTrack
|
||||||
fields = {
|
fields = {
|
||||||
|
|
|
@ -1,7 +1,20 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="ui inline form">
|
<div class="ui inline form">
|
||||||
<input type="text" v-model="search" placeholder="Search by title, artist, domain..." />
|
<div class="fields">
|
||||||
|
<div class="ui field">
|
||||||
|
<label>{{ $t('Search') }}</label>
|
||||||
|
<input type="text" v-model="search" placeholder="Search by title, artist, domain..." />
|
||||||
|
</div>
|
||||||
|
<div class="ui field">
|
||||||
|
<label>{{ $t('Import status') }}</label>
|
||||||
|
<select class="ui dropdown" v-model="importedFilter">
|
||||||
|
<option :value="null">{{ $t('Any') }}</option>
|
||||||
|
<option :value="true">{{ $t('Imported') }}</option>
|
||||||
|
<option :value="false">{{ $t('Not imported') }}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table v-if="result" class="ui compact very basic single line unstackable table">
|
<table v-if="result" class="ui compact very basic single line unstackable table">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -112,7 +125,8 @@ export default {
|
||||||
search: '',
|
search: '',
|
||||||
checked: {},
|
checked: {},
|
||||||
isImporting: false,
|
isImporting: false,
|
||||||
importBatch: null
|
importBatch: null,
|
||||||
|
importedFilter: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
|
@ -125,6 +139,9 @@ export default {
|
||||||
'page_size': this.paginateBy,
|
'page_size': this.paginateBy,
|
||||||
'q': this.search
|
'q': this.search
|
||||||
}, this.filters)
|
}, this.filters)
|
||||||
|
if (this.importedFilter !== null) {
|
||||||
|
params.imported = this.importedFilter
|
||||||
|
}
|
||||||
let self = this
|
let self = this
|
||||||
self.isLoading = true
|
self.isLoading = true
|
||||||
self.checked = []
|
self.checked = []
|
||||||
|
@ -181,6 +198,9 @@ export default {
|
||||||
},
|
},
|
||||||
page () {
|
page () {
|
||||||
this.fetchData()
|
this.fetchData()
|
||||||
|
},
|
||||||
|
importedFilter () {
|
||||||
|
this.fetchData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue