From e61b2b1fc5069ddf2f1c04cb76c3cb2454e775e7 Mon Sep 17 00:00:00 2001 From: maxime-gerges-external Date: Thu, 3 Jun 2021 14:48:18 +0200 Subject: [PATCH 1/2] feat: markdown support in report's description * markdown support in report list and report result pages * Add notes in the documentation regarding markdown --- docs/additional-features/reports.md | 6 ++++++ netbox/templates/extras/report.html | 2 +- netbox/templates/extras/report_list.html | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/additional-features/reports.md b/docs/additional-features/reports.md index bac1003fd..3df1ff900 100644 --- a/docs/additional-features/reports.md +++ b/docs/additional-features/reports.md @@ -85,6 +85,9 @@ As you can see, reports are completely customizable. Validation logic can be as !!! warning Reports should never alter data: If you find yourself using the `create()`, `save()`, `update()`, or `delete()` methods on objects within reports, stop and re-evaluate what you're trying to accomplish. Note that there are no safeguards against the accidental alteration or destruction of data. +!!! note + The `description`attribute support markdown syntax. You can use markdown to print fency description in the report list page. + The following methods are available to log results within a report: * log(message) @@ -95,6 +98,9 @@ The following methods are available to log results within a report: The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status. +!!! note + Every `log_`methods support markdown syntax. Thus you can use markdown in the message and it will be printed as such in the report result. + To perform additional tasks, such as sending an email or calling a webhook, after a report has been run, extend the `post_run()` method. The status of the report is available as `self.failed` and the results object is `self.result`. Once you have created a report, it will appear in the reports list. Initially, reports will have no results associated with them. To generate results, run the report. diff --git a/netbox/templates/extras/report.html b/netbox/templates/extras/report.html index f2c5edf23..82c3f3042 100644 --- a/netbox/templates/extras/report.html +++ b/netbox/templates/extras/report.html @@ -29,7 +29,7 @@ {% endif %}

{{ report.name }}

{% if report.description %} -

{{ report.description }}

+

{{ report.description|render_markdown }}

{% endif %} {% endblock %} diff --git a/netbox/templates/extras/report_list.html b/netbox/templates/extras/report_list.html index 7685cdacf..525a40d12 100644 --- a/netbox/templates/extras/report_list.html +++ b/netbox/templates/extras/report_list.html @@ -29,7 +29,7 @@ {% include 'extras/inc/job_label.html' with result=report.result %} - {{ report.description|placeholder }} + {{ report.description|render_markdown|placeholder }} {% if report.result %} {{ report.result.created }} From 10c9954ebcdc9633bd0e09ad9464712826647960 Mon Sep 17 00:00:00 2001 From: maximumG Date: Thu, 3 Jun 2021 20:36:52 +0200 Subject: [PATCH 2/2] fix: remove call-outs regarding markdown support --- docs/additional-features/reports.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/additional-features/reports.md b/docs/additional-features/reports.md index 3df1ff900..0d75abd21 100644 --- a/docs/additional-features/reports.md +++ b/docs/additional-features/reports.md @@ -80,14 +80,11 @@ class DeviceConnectionsReport(Report): self.log_success(device) ``` -As you can see, reports are completely customizable. Validation logic can be as simple or as complex as needed. +As you can see, reports are completely customizable. Validation logic can be as simple or as complex as needed. Also note that the `description` attribute support markdown syntax. It will be rendered in the report list page. !!! warning Reports should never alter data: If you find yourself using the `create()`, `save()`, `update()`, or `delete()` methods on objects within reports, stop and re-evaluate what you're trying to accomplish. Note that there are no safeguards against the accidental alteration or destruction of data. -!!! note - The `description`attribute support markdown syntax. You can use markdown to print fency description in the report list page. - The following methods are available to log results within a report: * log(message) @@ -96,10 +93,7 @@ The following methods are available to log results within a report: * log_warning(object, message) * log_failure(object, message) -The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status. - -!!! note - Every `log_`methods support markdown syntax. Thus you can use markdown in the message and it will be printed as such in the report result. +The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status. Log messages also support using markdown syntax and will be rendered on the report result page. To perform additional tasks, such as sending an email or calling a webhook, after a report has been run, extend the `post_run()` method. The status of the report is available as `self.failed` and the results object is `self.result`.