Add basic actions
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from common.utils import django_queryset_generator as qs_gen
|
||||||
from .models import (
|
from .models import (
|
||||||
Source,
|
Source,
|
||||||
Media,
|
Media,
|
||||||
@@ -22,16 +23,33 @@ class SourceAdmin(admin.ModelAdmin):
|
|||||||
class MediaAdmin(admin.ModelAdmin):
|
class MediaAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
# https://docs.djangoproject.com/en/5.2/ref/contrib/admin/actions/
|
# https://docs.djangoproject.com/en/5.2/ref/contrib/admin/actions/
|
||||||
# - skip
|
actions = ['clear_metadata', 'redownload', 'skip', 'unskip']
|
||||||
# - unskip
|
|
||||||
# - clear metadata
|
|
||||||
# - redownload
|
|
||||||
# actions = []
|
|
||||||
ordering = ('-created',)
|
ordering = ('-created',)
|
||||||
list_display = ('uuid', 'key', 'source', 'can_download', 'skip', 'downloaded')
|
list_display = ('uuid', 'key', 'source', 'can_download', 'skip', 'downloaded')
|
||||||
readonly_fields = ('uuid', 'created')
|
readonly_fields = ('uuid', 'created')
|
||||||
search_fields = ('uuid', 'source__key', 'key')
|
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)
|
@admin.register(Metadata)
|
||||||
class MetadataAdmin(admin.ModelAdmin):
|
class MetadataAdmin(admin.ModelAdmin):
|
||||||
|
|||||||
Reference in New Issue
Block a user