mesh overview in control panel
This commit is contained in:
parent
1a4ef5caa0
commit
48fbf2ca66
4 changed files with 48 additions and 1 deletions
|
@ -24,6 +24,7 @@
|
|||
{% if request.user_permissions.manage_map_updates %}
|
||||
<a href="{% url 'control.map_updates' %}">{% trans 'Map Updates' %}</a> ·
|
||||
{% endif %}
|
||||
<a href="{% url 'control.mesh_nodes' %}">{% trans 'Mesh' %}</a> ·
|
||||
<a href="{% url 'control.users.detail' user=request.user.pk %}">{{ request.user.username }}</a>
|
||||
</p>
|
||||
</nav>
|
||||
|
|
29
src/c3nav/control/templates/control/mesh_nodes.html
Normal file
29
src/c3nav/control/templates/control/mesh_nodes.html
Normal 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 %}
|
|
@ -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'),
|
||||
]
|
||||
|
|
|
@ -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,
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue