60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from django.contrib import admin,messages
|
|
from django.utils.translation import ngettext
|
|
from .models import SimpsonsData,simpsons_data_object
|
|
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")
|
|
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")
|
|
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 = ('season', 'episode', 'url', 'seen')
|
|
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()
|