aboutsummaryrefslogtreecommitdiff
path: root/watch/admin.py
diff options
context:
space:
mode:
authorBobby <[email protected]>2024-09-03 21:13:48 -0400
committerBobby <[email protected]>2024-09-03 21:13:48 -0400
commitf170e24e0396db936f3a26dd78a6c504a400cde9 (patch)
tree7514ea8bae52bfe0e630aeee1b95772bd50c15b1 /watch/admin.py
parent7f57da0d18ac5bfb35a357740fabb38234890527 (diff)
downloadyugen-f170e24e0396db936f3a26dd78a6c504a400cde9.tar.xz
yugen-f170e24e0396db936f3a26dd78a6c504a400cde9.zip
database based optimizations
Diffstat (limited to 'watch/admin.py')
-rw-r--r--watch/admin.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/watch/admin.py b/watch/admin.py
index 8c38f3f..602025f 100644
--- a/watch/admin.py
+++ b/watch/admin.py
@@ -1,3 +1,35 @@
from django.contrib import admin
+from django.db import transaction
# Register your models here.
+from .models import Anime, AnimeGenre, AnimeStudio, AnimeTitle, AnimeTrailer, AnimeSeason, AnimeEpisode
+
+admin.site.register(AnimeGenre)
+admin.site.register(AnimeStudio)
+admin.site.register(AnimeTitle)
+admin.site.register(AnimeTrailer)
+admin.site.register(AnimeSeason)
+admin.site.register(AnimeEpisode)
+
+class AnimeTitleInline(admin.StackedInline):
+ model = AnimeTitle
+
+class AnimeTrailerInline(admin.StackedInline):
+ model = AnimeTrailer
+
+class AnimeAdmin(admin.ModelAdmin):
+ inlines = [AnimeTitleInline, AnimeTrailerInline]
+ list_display = ('id', 'get_title', 'status', 'totalEpisodes', 'currentEpisode')
+ search_fields = ('id', 'title__english', 'title__romaji')
+
+ def get_title(self, obj):
+ return str(obj.title) if hasattr(obj, 'title') else ''
+ get_title.short_description = 'Title'
+
+ @admin.action(description="Delete selected anime (including title and trailer)")
+ def delete_with_related(self, request, queryset):
+ queryset.delete()
+
+ actions = [delete_with_related]
+