mesh overview in control panel

This commit is contained in:
Laura Klünder 2023-10-02 15:35:08 +02:00
parent 1a4ef5caa0
commit 48fbf2ca66
4 changed files with 48 additions and 1 deletions

View file

@ -24,6 +24,7 @@
{% if request.user_permissions.manage_map_updates %}
<a href="{% url 'control.map_updates' %}">{% trans 'Map Updates' %}</a> &middot;
{% endif %}
<a href="{% url 'control.mesh_nodes' %}">{% trans 'Mesh' %}</a> &middot;
<a href="{% url 'control.users.detail' user=request.user.pk %}">{{ request.user.username }}</a>
</p>
</nav>

View file

@ -0,0 +1,29 @@
{% extends 'control/base.html' %}
{% load i18n %}
{% block heading %}{% trans 'Mesh' %}{% endblock %}
{% block subcontent %}
{% include 'control/fragment_pagination.html' with objects=nodes %}
<table>
<tr>
<th>{% trans 'Address' %}</th>
<th>{% trans 'Name' %}</th>
<th>{% trans 'Last seen' %}</th>
<th>{% trans 'Parent' %}</th>
<th>{% trans 'Route' %}</th>
</tr>
{% for node in nodes %}
<tr>
<td>{{ node.address }}</td>
<td>{{ node.name }}</td>
<td>{{ node.last_seen }}</td>
<td>{{ node.parent }}</td>
<td>{{ node.route }}</td>
</tr>
{% endfor %}
</table>
{% include 'control/fragment_pagination.html' with objects=nodes %}
{% endblock %}

View file

@ -1,7 +1,7 @@
from django.urls import path
from c3nav.control.views import (announcement_detail, announcement_list, grant_access, grant_access_qr, main_index,
map_updates, user_detail, user_list)
map_updates, user_detail, user_list, mesh_node_list)
urlpatterns = [
path('users/', user_list, name='control.users'),
@ -11,5 +11,6 @@ urlpatterns = [
path('announcements/', announcement_list, name='control.announcements'),
path('announcements/<int:annoucement>/', announcement_detail, name='control.announcements.detail'),
path('mapupdates/', map_updates, name='control.map_updates'),
path('mesh/', mesh_node_list, name='control.mesh_nodes'),
path('', main_index, name='control.index'),
]

View file

@ -25,6 +25,7 @@ from c3nav.control.models import UserPermissions, UserSpaceAccess
from c3nav.mapdata.models import MapUpdate
from c3nav.mapdata.models.access import AccessPermission, AccessPermissionToken, AccessRestriction
from c3nav.mapdata.tasks import process_map_updates
from c3nav.mesh.models import MeshNode
from c3nav.site.models import Announcement
@ -407,3 +408,18 @@ def map_updates(request):
'filter_form': filter_form,
'updates': users,
})
@login_required(login_url='site.login')
@control_panel_view
def mesh_node_list(request):
page = request.GET.get('page', 1)
queryset = MeshNode.objects.order_by('address')
paginator = Paginator(queryset, 20)
nodes = paginator.page(page)
return render(request, 'control/mesh_nodes.html', {
'nodes': nodes,
})