Add basic actions

This commit is contained in:
tcely
2026-02-24 08:27:53 -05:00
parent 0c63c74f4d
commit 100a22f48b

View File

@@ -1,4 +1,5 @@
from django.contrib import admin
from common.utils import django_queryset_generator as qs_gen
from .models import (
Source,
Media,
@@ -22,16 +23,33 @@ class SourceAdmin(admin.ModelAdmin):
class MediaAdmin(admin.ModelAdmin):
# https://docs.djangoproject.com/en/5.2/ref/contrib/admin/actions/
# - skip
# - unskip
# - clear metadata
# - redownload
# actions = []
actions = ['clear_metadata', 'redownload', 'skip', 'unskip']
ordering = ('-created',)
list_display = ('uuid', 'key', 'source', 'can_download', 'skip', 'downloaded')
readonly_fields = ('uuid', 'created')
search_fields = ('uuid', 'source__key', 'key')
@admin.action(description='Clear metadata from selected Media instances')
def clear_metadata(self, request, queryset):
# clear the metadata
for media in qs_gen(queryset):
media.metadata_clear(save=True)
@admin.action(description='Redownload selected Media instances')
def redownload(self, request, queryset):
# unset skip, manual_skip and downloaded
queryset.update(skip=False, manual_skip=False, downloaded=False)
@admin.action(description='Skip selected Media instances')
def skip(self, request, queryset):
# set skip and manual_skip
queryset.update(skip=True, manual_skip=True)
@admin.action(description='Unskip selected Media instances')
def unskip(self, request, queryset):
# unset skip and manual_skip
queryset.update(skip=False, manual_skip=False)
@admin.register(Metadata)
class MetadataAdmin(admin.ModelAdmin):