diff --git a/beat/web/experiments/admin.py b/beat/web/experiments/admin.py index e64e65849ff17e206a974c4a880654309ff80832..3a811ac11f564a8b1e5db20515c59d071025f493 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