Localization and several UI changes #51
|
@ -12,17 +12,52 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for log in device_logs %}
|
{% for log in device_logs %}
|
||||||
<tr>
|
<tr>
|
||||||
<td width="13%">{{ log.date|date:"M j, Y, H:i" }}</td>
|
<td width="13%">{{ log.date|date:"M j, Y, H:i" }}</td>
|
||||||
<td class="fst-italic">{{ log.event }}</td>
|
<td class="fst-italic">{{ log.event }}</td>
|
||||||
<td>{{ log.user.get_full_name|default:log.user.username }}</td>
|
<td>{{ log.user.get_full_name|default:log.user.username }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" class="text-center">{% trans 'No logs recorded.' %}</td>
|
<td colspan="3" class="text-center">{% trans 'No logs recorded.' %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
|
|
|
@ -5,6 +5,7 @@ from django.http import JsonResponse
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import IntegrityError
|
from django.db import IntegrityError
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
|
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.shortcuts import get_object_or_404, redirect, Http404
|
from django.shortcuts import get_object_or_404, redirect, Http404
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
@ -104,9 +105,21 @@ class DetailsView(DashboardView, TemplateView):
|
||||||
institution=self.request.user.institution
|
institution=self.request.user.institution
|
||||||
).order_by('order')
|
).order_by('order')
|
||||||
device_states = State.objects.filter(snapshot_uuid__in=uuids).order_by('-date')
|
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')
|
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({
|
context.update({
|
||||||
'object': self.object,
|
'object': self.object,
|
||||||
'snapshot': last_evidence,
|
'snapshot': last_evidence,
|
||||||
|
|
Loading…
Reference in a new issue