From bc248208e27d2360403710f06e41e5a96d88ac28 Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 23 May 2024 13:13:37 -0700 Subject: [PATCH] 16149 add (optional) obj hyperlink to script list table --- docs/customization/custom-scripts.md | 10 +++++----- netbox/extras/scripts.py | 4 +++- netbox/extras/tables/tables.py | 9 +++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/customization/custom-scripts.md b/docs/customization/custom-scripts.md index 21ae20f05..3becd8910 100644 --- a/docs/customization/custom-scripts.md +++ b/docs/customization/custom-scripts.md @@ -144,11 +144,11 @@ These two methods will load data in YAML or JSON format, respectively, from file The Script object provides a set of convenient functions for recording messages at different severity levels: -* `log_debug(message, object=None)` -* `log_success(message, object=None)` -* `log_info(message, object=None)` -* `log_warning(message, object=None)` -* `log_failure(message, object=None)` +* `log_debug(message, obj=None)` +* `log_success(message, obj=None)` +* `log_info(message, obj=None)` +* `log_warning(message, obj=None)` +* `log_failure(message, obj=None)` Log messages are returned to the user upon execution of the script. Markdown rendering is supported for log messages. A message may optionally be associated with a particular object by passing it as the second argument to the logging method. diff --git a/netbox/extras/scripts.py b/netbox/extras/scripts.py index 0e74c3f0d..d33743cd4 100644 --- a/netbox/extras/scripts.py +++ b/netbox/extras/scripts.py @@ -505,7 +505,9 @@ class BaseScript: # Record to the system log if obj: message = f"{obj}: {message}" - self.logger.log(LogLevelChoices.SYSTEM_LEVELS[level], message) + self.logger.log(LogLevelChoices.SYSTEM_LEVELS[level], f"{obj}: {message}") + else: + self.logger.log(LogLevelChoices.SYSTEM_LEVELS[level], message) def log_debug(self, message, obj=None): self._log(message, obj, level=LogLevelChoices.LOG_DEBUG) diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 8c78ad0de..2dbf93b2f 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -545,6 +545,12 @@ class ScriptResultsTable(BaseTable): template_code="""{% load log_levels %}{% log_level record.status %}""", verbose_name=_('Level') ) + object = tables.Column( + verbose_name=_('Object') + ) + url = tables.Column( + verbose_name=_('URL') + ) message = columns.MarkdownColumn( verbose_name=_('Message') ) @@ -552,6 +558,9 @@ class ScriptResultsTable(BaseTable): class Meta(BaseTable.Meta): empty_text = _(EMPTY_TABLE_TEXT) fields = ( + 'index', 'time', 'status', 'object', 'url', 'message', + ) + default_columns = ( 'index', 'time', 'status', 'message', )