added log pagination
This commit is contained in:
parent
d6f20f37fd
commit
65d5b48a2e
|
@ -12,17 +12,52 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
{% for log in device_logs %}
|
||||
<tr>
|
||||
<td width="13%">{{ log.date|date:"M j, Y, H:i" }}</td>
|
||||
<td class="fst-italic">{{ log.event }}</td>
|
||||
<td>{{ log.user.get_full_name|default:log.user.username }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="13%">{{ log.date|date:"M j, Y, H:i" }}</td>
|
||||
<td class="fst-italic">{{ log.event }}</td>
|
||||
<td>{{ log.user.get_full_name|default:log.user.username }}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="3" class="text-center">{% trans 'No logs recorded.' %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" class="text-center">{% trans 'No logs recorded.' %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination justify-content-center">
|
||||
{% if device_logs.has_previous %}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page=1" aria-label="First">
|
||||
<span aria-hidden="true">« First</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page={{ device_logs.previous_page_number }}" aria-label="Previous">
|
||||
<span aria-hidden="true">‹ Previous</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="page-item active">
|
||||
<span class="page-link">
|
||||
Page {{ device_logs.number }} of {{ device_logs.paginator.num_pages }}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
{% if device_logs.has_next %}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page={{ device_logs.next_page_number }}" aria-label="Next">
|
||||
<span aria-hidden="true">Next ›</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page={{ device_logs.paginator.num_pages }}" aria-label="Last">
|
||||
<span aria-hidden="true">Last »</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
|
|
@ -5,6 +5,7 @@ from django.http import JsonResponse
|
|||
from django.conf import settings
|
||||
from django.db import IntegrityError
|
||||
from django.urls import reverse_lazy
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.contrib import messages
|
||||
from django.shortcuts import get_object_or_404, redirect, Http404
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
@ -104,9 +105,21 @@ class DetailsView(DashboardView, TemplateView):
|
|||
institution=self.request.user.institution
|
||||
).order_by('order')
|
||||
device_states = State.objects.filter(snapshot_uuid__in=uuids).order_by('-date')
|
||||
device_logs = DeviceLog.objects.filter(
|
||||
snapshot_uuid__in=uuids).order_by('-date')
|
||||
device_notes = Note.objects.filter(snapshot_uuid__in=uuids).order_by('-date')
|
||||
|
||||
# Paginate device_logs
|
||||
# TODO: when clicking pagination button, it reloads the page on the details tab, instead of the log one
|
||||
device_logs_list = DeviceLog.objects.filter(snapshot_uuid__in=uuids).order_by('-date')
|
||||
paginator = Paginator(device_logs_list, 10) # Show last 10 logs
|
||||
|
||||
page = self.request.GET.get('page')
|
||||
try:
|
||||
device_logs = paginator.page(page)
|
||||
except PageNotAnInteger:
|
||||
device_logs = paginator.page(1)
|
||||
except EmptyPage:
|
||||
device_logs = paginator.page(paginator.num_pages)
|
||||
|
||||
context.update({
|
||||
'object': self.object,
|
||||
'snapshot': last_evidence,
|
||||
|
|
Loading…
Reference in a new issue