from __future__ import annotations from django.contrib import admin from django.utils.html import format_html from .models import SiteRun @admin.register(SiteRun) class SiteRunAdmin(admin.ModelAdmin): list_display = ("created_at", "city", "business", "short_id", "preview", "download") list_filter = ("city", "business", "created_at") search_fields = ("search_id", "city", "business") readonly_fields = ("created_at", "search_id", "city", "business", "payload_json", "result_json") def short_id(self, obj: SiteRun) -> str: return obj.search_id[:8] def preview(self, obj: SiteRun): if obj.map_url: return format_html('map', obj.map_url) return "—" def download(self, obj: SiteRun): # if you added a PNG/CSV download endpoint, link it here later url = (obj.result_json or {}).get("download_url") if url: return format_html('download', url) return "—"