From 5b07c70ca280119b67b573aef5cde0a45bed3119 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Fri, 13 Jan 2023 17:06:29 -0500 Subject: [PATCH] Add scrobble inlines to admin classes --- vrobbler/apps/music/admin.py | 5 +++++ vrobbler/apps/podcasts/admin.py | 5 ++++- vrobbler/apps/scrobbles/admin.py | 8 ++++++++ vrobbler/apps/videos/admin.py | 13 ++++++++----- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/vrobbler/apps/music/admin.py b/vrobbler/apps/music/admin.py index 57acfa4..e1c34eb 100644 --- a/vrobbler/apps/music/admin.py +++ b/vrobbler/apps/music/admin.py @@ -2,6 +2,8 @@ from django.contrib import admin from music.models import Artist, Album, Track +from scrobbles.admin import ScrobbleInline + @admin.register(Album) class AlbumAdmin(admin.ModelAdmin): @@ -33,3 +35,6 @@ class TrackAdmin(admin.ModelAdmin): ) list_filter = ("album", "artist") ordering = ("-created",) + inlines = [ + ScrobbleInline, + ] diff --git a/vrobbler/apps/podcasts/admin.py b/vrobbler/apps/podcasts/admin.py index 1624471..62173ad 100644 --- a/vrobbler/apps/podcasts/admin.py +++ b/vrobbler/apps/podcasts/admin.py @@ -1,6 +1,6 @@ -#!/usr/bin/env python3 from django.contrib import admin from podcasts.models import Episode, Podcast, Producer +from scrobbles.admin import ScrobbleInline @admin.register(Producer) @@ -31,3 +31,6 @@ class EpisodeAdmin(admin.ModelAdmin): ) list_filter = ("podcast",) ordering = ("-created",) + inlines = [ + ScrobbleInline, + ] diff --git a/vrobbler/apps/scrobbles/admin.py b/vrobbler/apps/scrobbles/admin.py index 14d76ed..646d577 100644 --- a/vrobbler/apps/scrobbles/admin.py +++ b/vrobbler/apps/scrobbles/admin.py @@ -3,6 +3,13 @@ from django.contrib import admin from scrobbles.models import Scrobble +class ScrobbleInline(admin.TabularInline): + model = Scrobble + extra = 0 + raw_id_fields = ('video', 'podcast_episode', 'track') + exclude = ('source_id', 'scrobble_log') + + @admin.register(Scrobble) class ScrobbleAdmin(admin.ModelAdmin): date_hierarchy = "timestamp" @@ -16,6 +23,7 @@ class ScrobbleAdmin(admin.ModelAdmin): "is_paused", "played_to_completion", ) + raw_id_fields = ('video', 'podcast_episode', 'track') list_filter = ("is_paused", "in_progress", "source", "track__artist") ordering = ("-timestamp",) diff --git a/vrobbler/apps/videos/admin.py b/vrobbler/apps/videos/admin.py index 694e3ab..8bd8c98 100644 --- a/vrobbler/apps/videos/admin.py +++ b/vrobbler/apps/videos/admin.py @@ -1,16 +1,20 @@ from django.contrib import admin - +from scrobbles.models import Scrobble from videos.models import Series, Video +from scrobbles.admin import ScrobbleInline +@admin.register(Series) class SeriesAdmin(admin.ModelAdmin): date_hierarchy = "created" list_display = ("name", "tagline") ordering = ("-created",) +@admin.register(Video) class VideoAdmin(admin.ModelAdmin): date_hierarchy = "created" + raw_id_fields = ('tv_series',) list_display = ( "title", "video_type", @@ -22,7 +26,6 @@ class VideoAdmin(admin.ModelAdmin): ) list_filter = ("year", "tv_series", "video_type") ordering = ("-created",) - - -admin.site.register(Series, SeriesAdmin) -admin.site.register(Video, VideoAdmin) + inlines = [ + ScrobbleInline, + ]