Files
Django_kube/django_code/apps/random_simpsons/admin.py
T
pi-ux-ce ed70f03a83
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
add options for the admin page
2026-06-25 13:56:25 +01:00

75 lines
2.4 KiB
Python

from django.contrib import admin,messages
from django.utils.translation import ngettext
from prompt_toolkit.shortcuts import print_container
from .models import SimpsonsData,simpsons_data_object
from .utils import mark_episode_watched
from import_export import resources
from import_export.admin import ImportExportModelAdmin
# Register your models here.
DB = 'simpsons_db'
@admin.action(description="Mark episode as seen")
def make_seen(modeladmin, request, queryset):
updated = queryset.update(seen="True")
for query in queryset.values():
print(query)
season_number = query.get('season')
episode_number = query.get('episode')
mark_episode_watched(season_number,episode_number,"watched")
modeladmin.message_user(
request,
ngettext(
"%d episode was successfully marked as seen.",
"%d episodes were successfully marked as seen.",
updated,
)
% updated,
messages.SUCCESS,
)
@admin.action(description="Mark episode as not seen")
def make_unseen(modeladmin, request, queryset):
updated = queryset.update(seen="False")
for query in queryset.values():
print(query)
season_number = query.get('season')
episode_number = query.get('episode')
mark_episode_watched(season_number,episode_number,"unwatched")
modeladmin.message_user(
request,
ngettext(
"%d episode was successfully marked as not seen.",
"%d episodes were successfully marked as not seen.",
updated,
)
% updated,
messages.SUCCESS,
)
@admin.action(description="create_entry")
def create_entry(modeladmin, request, queryset):
simpsons_data_object.create(season=2, episode=3, url="google.com", seen=True)
@admin.register(SimpsonsData)
class EpisodeAdmin(ImportExportModelAdmin):
list_display = [field.name for field in SimpsonsData._meta.fields if field.name != 'id']
list_filter = ['seen']
fields = ['season', 'episode', 'url', 'seen']
actions = [make_seen,make_unseen,create_entry]
def get_queryset(self, request):
return super().get_queryset(request).using(DB)
def save_model(self, request, obj, form, change):
obj.save(using=DB)
def delete_model(self, request, obj):
obj.delete(using=DB)
def delete_queryset(self, request, queryset):
queryset.using(DB).delete()