diff --git a/netbox/extras/reports.py b/netbox/extras/reports.py index 45496d396..439868dfd 100644 --- a/netbox/extras/reports.py +++ b/netbox/extras/reports.py @@ -146,12 +146,19 @@ class Report(object): return self.__module__ @property - def name(self): + def class_name(self): return self.__class__.__name__ + @property + def name(self): + """ + Override this attribute to set a custom display name. + """ + return self.class_name + @property def full_name(self): - return '.'.join([self.__module__, self.__class__.__name__]) + return f'{self.module}.{self.class_name}' def _log(self, obj, message, level=LogLevelChoices.LOG_DEFAULT): """ diff --git a/netbox/templates/extras/report.html b/netbox/templates/extras/report.html new file mode 100644 index 000000000..58bee4059 --- /dev/null +++ b/netbox/templates/extras/report.html @@ -0,0 +1,38 @@ +{% extends 'base.html' %} +{% load helpers %} + +{% block title %}{{ report.name }}{% endblock %} + +{% block content %} +
+
+ +
+
+ {% if perms.extras.run_report %} +
+
+ {% csrf_token %} + {{ run_form }} + +
+
+ {% endif %} +

{{ report.name }}

+
+
+ {% if report.description %} +

{{ report.description }}

+ {% endif %} + {% if report.result %} +

Last run: + {{ report.result.created }} +

+ {% endif %} +
+
+{% endblock %} diff --git a/netbox/templates/extras/report_list.html b/netbox/templates/extras/report_list.html index f507cf2b1..7918366d9 100644 --- a/netbox/templates/extras/report_list.html +++ b/netbox/templates/extras/report_list.html @@ -6,7 +6,7 @@
{% if reports %} - {% for module, module_reports in reports %} + {% for module, module_reports in reports %}

{{ module|bettertitle }}

@@ -21,17 +21,21 @@ {% for report in module_reports %} - - {% if report.result %} - - {% else %} - - {% endif %} + + {% for method, stats in report.result.data.items %} @@ -66,7 +70,7 @@
- {{ report.name }} + + {{ report.name }} + {% include 'extras/inc/job_label.html' with result=report.result %} {{ report.description|default:"" }}{{ report.result.created }}Never{{ report.description|placeholder }} + {% if report.result %} + {{ report.result.created }} + {% else %} + Never + {% endif %} +