Files
Django_kube/django_code/apps/random_simpsons/admin.py
T
pi-ux-ce 0aebb19650
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s
generate new urls based on the urlData form
2026-07-07 10:47:24 +01:00

97 lines
3.0 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,urlData
from .utils import mark_episode_watched,unwatch_all_episodes,generate_new_urls_for_episode
from import_export import resources
from import_export.admin import ImportExportModelAdmin
from django.utils import timezone
# 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",modified_at=timezone.now())
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="mark all of them as unseen on betaserie")
def unseen_betaserie(modeladmin, request, queryset):
unwatch_all_episodes()
@admin.action(description="generate new urls for episode")
def generate_new_urls(modeladmin, request, queryset):
generate_new_urls_for_episode()
@admin.register(SimpsonsData)
class EpisodeAdmin(ImportExportModelAdmin):
list_display = [field.name for field in SimpsonsData._meta.fields if field.name != 'id']
list_filter = ['seen','modified_at']
#list_filter = ['seen']
fields = ['season', 'episode', 'url', 'seen']
actions = [make_seen,make_unseen,unseen_betaserie,generate_new_urls]
search_fields = ['season', 'episode', 'url', 'seen']
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()
@admin.register(urlData)
class urldataAdmin(ImportExportModelAdmin):
list_display = ('url_example', 'prefix', 'infix', 'suffix','addedDate')
fieldsets = [
(
None,
{
'fields': (('prefix', 'infix', 'suffix'), 'url_example')
},
)
]