add firmware overview
This commit is contained in:
parent
61673603ea
commit
e01e718356
4 changed files with 56 additions and 3 deletions
38
src/c3nav/control/templates/control/mesh_firmwares.html
Normal file
38
src/c3nav/control/templates/control/mesh_firmwares.html
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{% extends 'control/base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block heading %}{% trans 'Mesh Firmwares' %}{% endblock %}
|
||||||
|
|
||||||
|
{% block subcontent %}
|
||||||
|
<h4>Firmwares</h4>
|
||||||
|
|
||||||
|
{% include 'control/fragment_pagination.html' %}
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>{% trans 'Created' %}</th>
|
||||||
|
<th>{% trans 'Uploader' %}</th>
|
||||||
|
<th>{% trans 'Project Name' %}</th>
|
||||||
|
<th>{% trans 'Version' %}</th>
|
||||||
|
<th>{% trans 'IDF version' %}</th>
|
||||||
|
<th>{% trans 'Builds' %}</th>
|
||||||
|
</tr>
|
||||||
|
{% for firmware in firmwares %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ firmware.created }}</td>
|
||||||
|
<td>{{ firmware.uploader }}</td>
|
||||||
|
<td>{{ firmware.project_name }}</td>
|
||||||
|
<td>{{ firmware.version }}</td>
|
||||||
|
<td>{{ firmware.idf_version }}</td>
|
||||||
|
<td>
|
||||||
|
{% for build in firmware.builds.all %}
|
||||||
|
{{ build.variant }} ({{ build.get_chip_display }})<br>
|
||||||
|
{% endfor %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{% include 'control/fragment_pagination.html' %}
|
||||||
|
{% endblock %}
|
|
@ -11,6 +11,12 @@
|
||||||
{% trans 'View received messages' %}
|
{% trans 'View received messages' %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>View firmwares</h4>
|
||||||
|
<a class="button" href="{% url "control.mesh.firmwares" %}">
|
||||||
|
{% trans 'View firmwares' %}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h4>Send messages</h4>
|
<h4>Send messages</h4>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
|
|
|
@ -4,8 +4,8 @@ from c3nav.control.views.access import grant_access, grant_access_qr
|
||||||
from c3nav.control.views.announcements import announcement_detail, announcement_list
|
from c3nav.control.views.announcements import announcement_detail, announcement_list
|
||||||
from c3nav.control.views.base import ControlPanelIndexView
|
from c3nav.control.views.base import ControlPanelIndexView
|
||||||
from c3nav.control.views.mapupdates import map_updates
|
from c3nav.control.views.mapupdates import map_updates
|
||||||
from c3nav.control.views.mesh import (MeshLogView, MeshMessageListView, MeshMessageSendingView, MeshMessageSendView,
|
from c3nav.control.views.mesh import (MeshFirmwaresListView, MeshLogView, MeshMessageListView, MeshMessageSendingView,
|
||||||
MeshNodeDetailView, MeshNodeEditView, MeshNodeListView)
|
MeshMessageSendView, MeshNodeDetailView, MeshNodeEditView, MeshNodeListView)
|
||||||
from c3nav.control.views.users import UserListView, user_detail
|
from c3nav.control.views.users import UserListView, user_detail
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
@ -19,6 +19,7 @@ urlpatterns = [
|
||||||
path('mesh/', MeshNodeListView.as_view(), name='control.mesh.nodes'),
|
path('mesh/', MeshNodeListView.as_view(), name='control.mesh.nodes'),
|
||||||
path('mesh/logs/', MeshLogView.as_view(), name='control.mesh.log'),
|
path('mesh/logs/', MeshLogView.as_view(), name='control.mesh.log'),
|
||||||
path('mesh/messages/', MeshMessageListView.as_view(), name='control.mesh.messages'),
|
path('mesh/messages/', MeshMessageListView.as_view(), name='control.mesh.messages'),
|
||||||
|
path('mesh/firmwares/', MeshFirmwaresListView.as_view(), name='control.mesh.firmwares'),
|
||||||
path('mesh/<str:pk>/', MeshNodeDetailView.as_view(), name='control.mesh.node.detail'),
|
path('mesh/<str:pk>/', MeshNodeDetailView.as_view(), name='control.mesh.node.detail'),
|
||||||
path('mesh/<str:pk>/edit/', MeshNodeEditView.as_view(), name='control.mesh.node.edit'),
|
path('mesh/<str:pk>/edit/', MeshNodeEditView.as_view(), name='control.mesh.node.edit'),
|
||||||
path('mesh/message/sending/<uuid:uuid>/', MeshMessageSendingView.as_view(), name='control.mesh.sending'),
|
path('mesh/message/sending/<uuid:uuid>/', MeshMessageSendingView.as_view(), name='control.mesh.sending'),
|
||||||
|
|
|
@ -14,7 +14,7 @@ from c3nav.control.forms import MeshMessageFilterForm
|
||||||
from c3nav.control.views.base import ControlPanelMixin
|
from c3nav.control.views.base import ControlPanelMixin
|
||||||
from c3nav.mesh.forms import MeshMessageForm, MeshNodeForm
|
from c3nav.mesh.forms import MeshMessageForm, MeshNodeForm
|
||||||
from c3nav.mesh.messages import MeshMessage, MeshMessageType
|
from c3nav.mesh.messages import MeshMessage, MeshMessageType
|
||||||
from c3nav.mesh.models import MeshNode, NodeMessage
|
from c3nav.mesh.models import FirmwareVersion, MeshNode, NodeMessage
|
||||||
from c3nav.mesh.utils import get_node_names, group_msg_type_choices
|
from c3nav.mesh.utils import get_node_names, group_msg_type_choices
|
||||||
|
|
||||||
|
|
||||||
|
@ -187,3 +187,11 @@ class MeshLogView(ControlPanelMixin, TemplateView):
|
||||||
**super().get_context_data(),
|
**super().get_context_data(),
|
||||||
"node_names": get_node_names(),
|
"node_names": get_node_names(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class MeshFirmwaresListView(ControlPanelMixin, ListView):
|
||||||
|
model = FirmwareVersion
|
||||||
|
template_name = "control/mesh_firmwares.html"
|
||||||
|
ordering = "-created"
|
||||||
|
context_object_name = "firmwares"
|
||||||
|
paginate_by = 20
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue