diff --git a/archivebox/core/admin_archiveresults.py b/archivebox/core/admin_archiveresults.py index 24efc925..4a6e9831 100644 --- a/archivebox/core/admin_archiveresults.py +++ b/archivebox/core/admin_archiveresults.py @@ -24,6 +24,7 @@ from archivebox.core.models import ArchiveResult, Snapshot from archivebox.core.routes_util import build_snapshot_url from archivebox.core.widgets import InlineTagEditorWidget from archivebox.machine.env_util import env_to_shell_exports +from archivebox.misc.logging_util import printable_filesize from archivebox.misc.paginators import AcceleratedPaginator from archivebox.plugins.discovery import get_plugin_icon from archivebox.plugins.views import LIVE_PLUGIN_BASE_URL @@ -79,7 +80,7 @@ def get_process_link_label(process) -> str: return str(process.id)[-8:] -def render_archiveresults_list(archiveresults_qs, limit=50, config=None): +def render_archiveresults_list(archiveresults_qs, limit=50, config=None, can_delete=False): """Render a nice inline list view of archive results with status, plugin, output, and actions.""" results = list( @@ -112,6 +113,7 @@ def render_archiveresults_list(archiveresults_qs, limit=50, config=None): } rows = [] + delete_url = html.escape(reverse("admin:core_archiveresult_changelist"), quote=True) for idx, result in enumerate(results): status = result.status or "queued" color, bg = status_colors.get(status, ("#6b7280", "#f3f4f6")) @@ -126,6 +128,8 @@ def render_archiveresults_list(archiveresults_qs, limit=50, config=None): output_file_count = 0 else: output_file_count = 0 + output_size = int(result.output_size or 0) + output_size_display = html.escape(printable_filesize(output_size)) # Get plugin icon icon = get_plugin_icon(result.plugin) @@ -190,9 +194,16 @@ def render_archiveresults_list(archiveresults_qs, limit=50, config=None): # Unique ID for this row's expandable output row_id = f"output_{idx}_{str(result.id)[:8]}" + delete_button = "" + if can_delete: + delete_button = f''' + + ''' rows.append(f''' -