diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py index d33743cd4..e83647711 100644 --- a/netbox/extras/scripts.py +++ b/netbox/extras/scripts.py @@ -500,6 +500,8 @@ class BaseScript: 'time': timezone.now().isoformat(), 'status': level, 'message': str(message), + 'obj': str(obj) if obj else None, + 'url': obj.get_absolute_url() if hasattr(obj, 'get_absolute_url') else None, }) # Record to the system log diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 2dbf93b2f..c243ac000 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -1,6 +1,7 @@ import json import django_tables2 as tables +from django.utils.html import format_html from django.utils.translation import gettext_lazy as _ from extras.models import * @@ -564,6 +565,12 @@ class ScriptResultsTable(BaseTable): 'index', 'time', 'status', 'message', ) + def render_object(self, value, record): + return format_html("{}", record['url'], value) + + def render_url(self, value): + return format_html("{}", value, value) + class ReportResultsTable(BaseTable): index = tables.Column( @@ -594,3 +601,9 @@ class ReportResultsTable(BaseTable): fields = ( 'index', 'method', 'time', 'status', 'object', 'url', 'message', ) + + def render_object(self, value, record): + return format_html("{}", record['url'], value) + + def render_url(self, value): + return format_html("{}", value, value) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 3a82539fb..b9fbf6803 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -1201,6 +1201,8 @@ class ScriptResultView(TableMixin, generic.ObjectView): 'time': log.get('time'), 'status': log.get('status'), 'message': log.get('message'), + 'object': log.get('obj'), + 'url': log.get('url'), } data.append(result)