From e13ac323701a0ee7932419cd9b40afcb17124752 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Tue, 27 Feb 2018 23:01:55 +0100 Subject: [PATCH] Fixed #80: Added admin interface for radios, track files, favorites... --- api/funkwhale_api/favorites/admin.py | 12 +++++++ api/funkwhale_api/history/admin.py | 4 +++ api/funkwhale_api/music/admin.py | 35 ++++++++++++++++++-- api/funkwhale_api/radios/admin.py | 48 ++++++++++++++++++++++++++++ api/funkwhale_api/requests/admin.py | 16 ++++++++++ changes/changelog.d/80.feature | 1 + 6 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 api/funkwhale_api/favorites/admin.py create mode 100644 api/funkwhale_api/radios/admin.py create mode 100644 api/funkwhale_api/requests/admin.py create mode 100644 changes/changelog.d/80.feature diff --git a/api/funkwhale_api/favorites/admin.py b/api/funkwhale_api/favorites/admin.py new file mode 100644 index 00000000..e8f29fac --- /dev/null +++ b/api/funkwhale_api/favorites/admin.py @@ -0,0 +1,12 @@ +from django.contrib import admin + +from . import models + + +@admin.register(models.TrackFavorite) +class TrackFavoriteAdmin(admin.ModelAdmin): + list_display = ['user', 'track', 'creation_date'] + list_select_related = [ + 'user', + 'track' + ] diff --git a/api/funkwhale_api/history/admin.py b/api/funkwhale_api/history/admin.py index f8f587a0..6d0480e7 100644 --- a/api/funkwhale_api/history/admin.py +++ b/api/funkwhale_api/history/admin.py @@ -6,3 +6,7 @@ from . import models class ListeningAdmin(admin.ModelAdmin): list_display = ['track', 'end_date', 'user', 'session_key'] search_fields = ['track__name', 'user__username'] + list_select_related = [ + 'user', + 'track' + ] diff --git a/api/funkwhale_api/music/admin.py b/api/funkwhale_api/music/admin.py index 524b8538..219b40a9 100644 --- a/api/funkwhale_api/music/admin.py +++ b/api/funkwhale_api/music/admin.py @@ -25,13 +25,26 @@ class TrackAdmin(admin.ModelAdmin): @admin.register(models.ImportBatch) class ImportBatchAdmin(admin.ModelAdmin): - list_display = ['creation_date', 'status'] - + list_display = [ + 'submitted_by', + 'creation_date', + 'import_request', + 'status'] + list_select_related = [ + 'submitted_by', + 'import_request', + ] + list_filter = ['status'] + search_fields = [ + 'import_request__name', 'source', 'batch__pk', 'mbid'] @admin.register(models.ImportJob) class ImportJobAdmin(admin.ModelAdmin): list_display = ['source', 'batch', 'track_file', 'status', 'mbid'] - list_select_related = True + list_select_related = [ + 'track_file', + 'batch', + ] search_fields = ['source', 'batch__pk', 'mbid'] list_filter = ['status'] @@ -50,3 +63,19 @@ class LyricsAdmin(admin.ModelAdmin): list_select_related = True search_fields = ['url', 'work__title'] list_filter = ['work__language'] + + +@admin.register(models.TrackFile) +class TrackFileAdmin(admin.ModelAdmin): + list_display = [ + 'track', + 'audio_file', + 'source', + 'duration', + 'mimetype', + ] + list_select_related = [ + 'track' + ] + search_fields = ['source', 'acoustid_track_id'] + list_filter = ['mimetype'] diff --git a/api/funkwhale_api/radios/admin.py b/api/funkwhale_api/radios/admin.py new file mode 100644 index 00000000..6d5abada --- /dev/null +++ b/api/funkwhale_api/radios/admin.py @@ -0,0 +1,48 @@ +from django.contrib import admin + +from . import models + + +@admin.register(models.Radio) +class RadioAdmin(admin.ModelAdmin): + list_display = [ + 'user', 'name', 'is_public', 'creation_date', 'config'] + list_select_related = [ + 'user', + ] + list_filter = [ + 'is_public', + ] + search_fields = ['name', 'description'] + + +@admin.register(models.RadioSession) +class RadioSessionAdmin(admin.ModelAdmin): + list_display = [ + 'user', + 'custom_radio', + 'radio_type', + 'creation_date', + 'related_object'] + + list_select_related = [ + 'user', + 'custom_radio' + ] + list_filter = [ + 'radio_type', + ] + + +@admin.register(models.RadioSessionTrack) +class RadioSessionTrackAdmin(admin.ModelAdmin): + list_display = [ + 'id', + 'session', + 'position', + 'track',] + + list_select_related = [ + 'track', + 'session' + ] diff --git a/api/funkwhale_api/requests/admin.py b/api/funkwhale_api/requests/admin.py new file mode 100644 index 00000000..71933eaa --- /dev/null +++ b/api/funkwhale_api/requests/admin.py @@ -0,0 +1,16 @@ +from django.contrib import admin + +from . import models + + +@admin.register(models.ImportRequest) +class ImportRequestAdmin(admin.ModelAdmin): + list_display = ['artist_name', 'user', 'status', 'creation_date'] + list_select_related = [ + 'user', + 'track' + ] + list_filter = [ + 'status', + ] + search_fields = ['artist_name', 'comment', 'albums'] diff --git a/changes/changelog.d/80.feature b/changes/changelog.d/80.feature new file mode 100644 index 00000000..16591a91 --- /dev/null +++ b/changes/changelog.d/80.feature @@ -0,0 +1 @@ +Added admin interface for radios, track files, favorites and import requests (#80) -- GitLab