From 1eb3103d80e08cbc3ca2d8de466706c5c5127def Mon Sep 17 00:00:00 2001 From: Samuel Gaist <samuel.gaist@idiap.ch> Date: Mon, 26 Feb 2018 11:55:02 +0100 Subject: [PATCH] [web][experiments][admin] Added action to delete content from a cache entry Also remove the default delete action which should not be used for the CachedFile objects. --- beat/web/experiments/admin.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/beat/web/experiments/admin.py b/beat/web/experiments/admin.py index e64e65849..3a811ac11 100755 --- a/beat/web/experiments/admin.py +++ b/beat/web/experiments/admin.py @@ -520,6 +520,18 @@ admin.site.register(ResultModel, Result) #---------------------------------------------------------- +def delete_file_on_fs(modeladmin, request, queryset): + ''' + Delete the files contained in the cache + ''' + + for obj in queryset: + obj.delete_files() + + +delete_file_on_fs.short_description = 'Delete files from the cache' + + class CachedFile(admin.ModelAdmin): search_fields = [ @@ -543,10 +555,18 @@ class CachedFile(admin.ModelAdmin): # to avoid very slow loading of cached files raw_id_fields = ('blocks',) + actions = [delete_file_on_fs] + def get_queryset(self, request): qs = super(CachedFile, self).get_queryset(request) return qs.annotate(date=Max('blocks__start_date')) + def get_actions(self, request): + actions = super(CachedFile, self).get_actions(request) + if 'delete_selected' in actions: + del actions['delete_selected'] + return actions + def date(self, obj): return obj.date -- GitLab