pagination in placeholder logs
This commit is contained in:
parent
5e2dd3344b
commit
f9d679547f
|
@ -1222,41 +1222,6 @@ class SnapshotListView(GenericMixin):
|
||||||
snapshots_log.last = len(snapshots_log.items) + snapshots_log.first - 1
|
snapshots_log.last = len(snapshots_log.items) + snapshots_log.first - 1
|
||||||
return snapshots_log
|
return snapshots_log
|
||||||
|
|
||||||
logs = {}
|
|
||||||
for snap in snapshots_log:
|
|
||||||
try:
|
|
||||||
system_uuid = snap.snapshot.device.system_uuid or ''
|
|
||||||
except AttributeError:
|
|
||||||
system_uuid = ''
|
|
||||||
|
|
||||||
if snap.snapshot_uuid not in logs:
|
|
||||||
logs[snap.snapshot_uuid] = {
|
|
||||||
'sid': snap.sid,
|
|
||||||
'snapshot_uuid': snap.snapshot_uuid,
|
|
||||||
'version': snap.version,
|
|
||||||
'device': snap.get_device(),
|
|
||||||
'system_uuid': system_uuid,
|
|
||||||
'status': snap.get_status(),
|
|
||||||
'severity': snap.severity,
|
|
||||||
'created': snap.created,
|
|
||||||
'type_device': snap.get_type_device(),
|
|
||||||
'original_dhid': snap.get_original_dhid(),
|
|
||||||
'new_device': snap.get_new_device(),
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
|
|
||||||
if snap.created > logs[snap.snapshot_uuid]['created']:
|
|
||||||
logs[snap.snapshot_uuid]['created'] = snap.created
|
|
||||||
|
|
||||||
if snap.severity > logs[snap.snapshot_uuid]['severity']:
|
|
||||||
logs[snap.snapshot_uuid]['severity'] = snap.severity
|
|
||||||
logs[snap.snapshot_uuid]['status'] = snap.get_status()
|
|
||||||
|
|
||||||
result = sorted(logs.values(), key=lambda d: d['created'])
|
|
||||||
result.reverse()
|
|
||||||
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
class SnapshotDetailView(GenericMixin):
|
class SnapshotDetailView(GenericMixin):
|
||||||
template_name = 'inventory/snapshot_detail.html'
|
template_name = 'inventory/snapshot_detail.html'
|
||||||
|
@ -1385,10 +1350,17 @@ class PlaceholderLogListView(GenericMixin):
|
||||||
return flask.render_template(self.template_name, **self.context)
|
return flask.render_template(self.template_name, **self.context)
|
||||||
|
|
||||||
def get_placeholders_log(self):
|
def get_placeholders_log(self):
|
||||||
|
page = int(request.args.get('page', 1))
|
||||||
|
per_page = int(request.args.get('per_page', PER_PAGE))
|
||||||
|
|
||||||
placeholder_log = PlaceholdersLog.query.filter(
|
placeholder_log = PlaceholdersLog.query.filter(
|
||||||
PlaceholdersLog.owner == g.user
|
PlaceholdersLog.owner == g.user
|
||||||
).order_by(PlaceholdersLog.created.desc())
|
).order_by(PlaceholdersLog.created.desc())
|
||||||
|
|
||||||
|
placeholder_log = placeholder_log.paginate(page=page, per_page=per_page)
|
||||||
|
placeholder_log.first = per_page * placeholder_log.page - per_page + 1
|
||||||
|
placeholder_log.last = len(placeholder_log.items) + placeholder_log.first - 1
|
||||||
|
|
||||||
return placeholder_log
|
return placeholder_log
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,38 @@
|
||||||
<div class="tab-content pt-5">
|
<div class="tab-content pt-5">
|
||||||
<div id="devices-list" class="tab-pane fade devices-list active show">
|
<div id="devices-list" class="tab-pane fade devices-list active show">
|
||||||
<div class="tab-content pt-2">
|
<div class="tab-content pt-2">
|
||||||
|
<div class="dataTable-top" style="float: left;">
|
||||||
|
<div class="dataTable-dropdown">
|
||||||
|
<label>
|
||||||
|
<select class="dataTable-selector">
|
||||||
|
<option value="5"{% if placeholders_log.per_page == 5 %} selected="selected"{% endif %}>
|
||||||
|
5
|
||||||
|
</option>
|
||||||
|
<option value="10"{% if placeholders_log.per_page == 10 %} selected="selected"{% endif %}>
|
||||||
|
10
|
||||||
|
</option>
|
||||||
|
<option value="15"{% if placeholders_log.per_page == 15 %} selected="selected"{% endif %}>
|
||||||
|
15
|
||||||
|
</option>
|
||||||
|
<option value="20"{% if placeholders_log.per_page == 20 %} selected="selected"{% endif %}>
|
||||||
|
20
|
||||||
|
</option>
|
||||||
|
<option value="25"{% if placeholders_log.per_page == 25 %} selected="selected"{% endif %}>
|
||||||
|
25
|
||||||
|
</option>
|
||||||
|
<option value="50"{% if placeholders_log.per_page == 50 %} selected="selected"{% endif %}>
|
||||||
|
50
|
||||||
|
</option>
|
||||||
|
<option value="100"{% if placeholders_log.per_page == 100 %} selected="selected"{% endif %}>
|
||||||
|
100
|
||||||
|
</option>
|
||||||
|
</select> entries per page
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="dataTable-search">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataTable-container">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -34,7 +66,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for log in placeholders_log %}
|
{% for log in placeholders_log.items %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
{{ log.phid }}
|
{{ log.phid }}
|
||||||
|
@ -58,6 +90,38 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<div class="dataTable-bottom">
|
||||||
|
<div class="dataTable-info">
|
||||||
|
Showing {{ placeholders_log.first }} to {{ placeholders_log.last }} of {{ placeholders_log.total }} entries
|
||||||
|
</div>
|
||||||
|
<nav class="dataTable-pagination">
|
||||||
|
<ul class="dataTable-pagination-list">
|
||||||
|
{% if placeholders_log.has_prev %}
|
||||||
|
<li class="pager">
|
||||||
|
<a href="{{ url_for('inventory.placeholder_logs', page=placeholders_log.prev_num, per_page=placeholders_log.per_page) }}">‹</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% for page in placeholders_log.iter_pages() %}
|
||||||
|
{% if page %}
|
||||||
|
{% if page == placeholders_log.page %}
|
||||||
|
<li class="active"><a href="javascript:void()">{{ page }}</a></li>
|
||||||
|
{% else %}
|
||||||
|
<li class="">
|
||||||
|
<a href="{{ url_for('inventory.placeholder_logs', page=page, per_page=placeholders_log.per_page) }}">
|
||||||
|
{{ page }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if placeholders_log.has_next %}
|
||||||
|
<li class="pager">
|
||||||
|
<a href="{{ url_for('inventory.placeholder_logs', page=placeholders_log.next_num, per_page=placeholders_log.per_page) }}">›</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -75,6 +139,18 @@
|
||||||
|
|
||||||
<!-- Custom Code -->
|
<!-- Custom Code -->
|
||||||
<script>
|
<script>
|
||||||
const table = new simpleDatatables.DataTable("table")
|
$(document).ready(() => {
|
||||||
|
$(".dataTable-selector").on("change", function() {
|
||||||
|
const per_page = $('.dataTable-selector').val();
|
||||||
|
window.location.href = "{{ url_for('inventory.placeholder_logs', page=1) }}&per_page="+per_page;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
let table = new simpleDatatables.DataTable("table", {
|
||||||
|
footer: false,
|
||||||
|
paging: false,
|
||||||
|
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
{% endblock main %}
|
{% endblock main %}
|
||||||
|
|
Reference in New Issue