mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-25 18:08:38 -06:00
Expanded report view
This commit is contained in:
parent
2b33e78fd3
commit
6c6b67330f
@ -93,7 +93,7 @@ class Report(object):
|
|||||||
('success', 0),
|
('success', 0),
|
||||||
('info', 0),
|
('info', 0),
|
||||||
('warning', 0),
|
('warning', 0),
|
||||||
('failed', 0),
|
('failure', 0),
|
||||||
('log', []),
|
('log', []),
|
||||||
])
|
])
|
||||||
if not test_methods:
|
if not test_methods:
|
||||||
@ -118,8 +118,19 @@ class Report(object):
|
|||||||
"""
|
"""
|
||||||
if level not in LOG_LEVEL_CODES:
|
if level not in LOG_LEVEL_CODES:
|
||||||
raise Exception("Unknown logging level: {}".format(level))
|
raise Exception("Unknown logging level: {}".format(level))
|
||||||
logline = [timezone.now().isoformat(), level, str(obj), message]
|
self._results[self.active_test]['log'].append(
|
||||||
self._results[self.active_test]['log'].append(logline)
|
timezone.now().isoformat(),
|
||||||
|
LOG_LEVEL_CODES.get(level),
|
||||||
|
str(obj) if obj else None,
|
||||||
|
obj.get_absolute_url() if getattr(obj, 'get_absolute_url', None) else None,
|
||||||
|
message,
|
||||||
|
)
|
||||||
|
|
||||||
|
def log(self, message):
|
||||||
|
"""
|
||||||
|
Log a message which is not associated with a particular object.
|
||||||
|
"""
|
||||||
|
self._log(None, message, level=LOG_DEFAULT)
|
||||||
|
|
||||||
def log_success(self, obj, message=None):
|
def log_success(self, obj, message=None):
|
||||||
"""
|
"""
|
||||||
@ -148,7 +159,7 @@ class Report(object):
|
|||||||
Log a failure. Calling this method will automatically mark the report as failed.
|
Log a failure. Calling this method will automatically mark the report as failed.
|
||||||
"""
|
"""
|
||||||
self._log(obj, message, level=LOG_FAILURE)
|
self._log(obj, message, level=LOG_FAILURE)
|
||||||
self._results[self.active_test]['failed'] += 1
|
self._results[self.active_test]['failure'] += 1
|
||||||
self.failed = True
|
self.failed = True
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<h1>{{ report.name }}{% include 'extras/inc/report_label.html' %}</h1>
|
<h1>{{ report.name }}{% include 'extras/inc/report_label.html' %}</h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9">
|
<div class="col-md-12">
|
||||||
{% if report.description %}
|
{% if report.description %}
|
||||||
<p class="lead">{{ report.description }}</p>
|
<p class="lead">{{ report.description }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -34,5 +34,59 @@
|
|||||||
<p class="text-muted">Last run: Never</p>
|
<p class="text-muted">Last run: Never</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
|
{% if report.result %}
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Time</th>
|
||||||
|
<th>Level</th>
|
||||||
|
<th>Object</th>
|
||||||
|
<th>Message</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
{% for method, data in report.result.data.items %}
|
||||||
|
<tr>
|
||||||
|
<th colspan="4"><a name="{{ method }}"></a>{{ method }}</th>
|
||||||
|
</tr>
|
||||||
|
{% for time, level, obj, url, message in data.log %}
|
||||||
|
<tr class="{% if level == 'failure' %}danger{% elif level %}{{ level }}{% endif %}">
|
||||||
|
<td>{{ time }}</td>
|
||||||
|
<td>
|
||||||
|
<label class="label label-{% if level == 'failure' %}danger{% else %}{{ level }}{% endif %}">{{ level|title }}</label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if obj and url %}
|
||||||
|
<a href="{{ url }}">{{ obj }}</a>
|
||||||
|
{% elif obj %}
|
||||||
|
{{ obj }}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>{{ message }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% else %}
|
||||||
|
<div class="well">No results are available for this report. Please run the report first.</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
{% if report.result %}
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<strong>Methods</strong>
|
||||||
|
</div>
|
||||||
|
<ul class="list-group">
|
||||||
|
{% for method, data in report.result.data.items %}
|
||||||
|
<li class="list-group-item">
|
||||||
|
<a href="#{{ method }}">{{ method }}</a>
|
||||||
|
<span class="badge">{{ data.log|length }}</span>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
Reference in New Issue
Block a user