diff --git a/src/c3nav/control/templates/control/base.html b/src/c3nav/control/templates/control/base.html index d6214995..207aa46c 100644 --- a/src/c3nav/control/templates/control/base.html +++ b/src/c3nav/control/templates/control/base.html @@ -24,6 +24,7 @@ {% if request.user_permissions.manage_map_updates %} {% trans 'Map Updates' %} · {% endif %} + {% trans 'Mesh' %} · {{ request.user.username }}

diff --git a/src/c3nav/control/templates/control/mesh_nodes.html b/src/c3nav/control/templates/control/mesh_nodes.html new file mode 100644 index 00000000..5fd7bb63 --- /dev/null +++ b/src/c3nav/control/templates/control/mesh_nodes.html @@ -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 %} + + + + + + + + + + {% for node in nodes %} + + + + + + + + {% endfor %} +
{% trans 'Address' %}{% trans 'Name' %}{% trans 'Last seen' %}{% trans 'Parent' %}{% trans 'Route' %}
{{ node.address }}{{ node.name }}{{ node.last_seen }}{{ node.parent }}{{ node.route }}
+ + {% include 'control/fragment_pagination.html' with objects=nodes %} +{% endblock %} diff --git a/src/c3nav/control/urls.py b/src/c3nav/control/urls.py index 28ae4a1f..da678d21 100644 --- a/src/c3nav/control/urls.py +++ b/src/c3nav/control/urls.py @@ -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//', 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'), ] diff --git a/src/c3nav/control/views.py b/src/c3nav/control/views.py index 1c939f0d..d459ee5d 100644 --- a/src/c3nav/control/views.py +++ b/src/c3nav/control/views.py @@ -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, + }) \ No newline at end of file