remove node name
This commit is contained in:
parent
bf9d113677
commit
1fcb68f426
7 changed files with 27 additions and 33 deletions
|
@ -289,12 +289,6 @@ class OTAApplyMessageForm(MeshMessageForm):
|
|||
reboot = forms.BooleanField(required=False, label=_('reboot'))
|
||||
|
||||
|
||||
class MeshNodeForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = MeshNode
|
||||
fields = ["name"]
|
||||
|
||||
|
||||
class RangingForm(forms.Form):
|
||||
msg_types = {}
|
||||
|
||||
|
|
17
src/c3nav/mesh/migrations/0014_remove_meshnode_name.py
Normal file
17
src/c3nav/mesh/migrations/0014_remove_meshnode_name.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Generated by Django 5.0.1 on 2024-03-30 21:11
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mesh', '0013_meshnode_upstream_alter_nodemessage_message_type'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='meshnode',
|
||||
name='name',
|
||||
),
|
||||
]
|
|
@ -256,7 +256,6 @@ class MeshNode(models.Model):
|
|||
code='invalid_macaddress'
|
||||
)])
|
||||
|
||||
name = models.CharField(_('name'), max_length=32, null=True, blank=True)
|
||||
first_seen = models.DateTimeField(_('first seen'), auto_now_add=True)
|
||||
uplink = models.ForeignKey('MeshUplink', models.PROTECT, null=True,
|
||||
related_name='routed_nodes', verbose_name=_('uplink'))
|
||||
|
@ -265,6 +264,12 @@ class MeshNode(models.Model):
|
|||
last_signin = models.DateTimeField(_('last signin'), null=True)
|
||||
objects = models.Manager.from_queryset(MeshNodeQuerySet)()
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
node_message = self.last_messages[MeshMessageType.CONFIG_NODE]
|
||||
if node_message:
|
||||
return f"{node_message.parsed.content.number} {node_message.parsed.content.name}".strip()
|
||||
|
||||
def __str__(self):
|
||||
if self.name:
|
||||
return '%s (%s)' % (self.address, self.name)
|
||||
|
|
|
@ -45,9 +45,6 @@
|
|||
<br>
|
||||
</p>
|
||||
<p>
|
||||
<a class="button" href="{% url "mesh.node.edit" pk=node.pk %}">
|
||||
{% trans 'Edit' %}
|
||||
</a>
|
||||
<a class="button" href="{% url "mesh.messages" %}?src_nodes={{ node.address }}">
|
||||
{% trans 'View messages' %}
|
||||
</a>
|
||||
|
|
|
@ -5,7 +5,7 @@ from c3nav.mesh.views.firmware import (FirmwareBuildDetailView, FirmwareDetailVi
|
|||
FirmwaresListView, OTADetailView, OTAListView)
|
||||
from c3nav.mesh.views.messages import MeshMessageListView, MeshMessageSendingView, MeshMessageSendView
|
||||
from c3nav.mesh.views.misc import MeshLogView, MeshRangingView
|
||||
from c3nav.mesh.views.nodes import NodeDetailView, NodeEditView, NodeListView
|
||||
from c3nav.mesh.views.nodes import NodeDetailView, NodeListView
|
||||
|
||||
urlpatterns = [
|
||||
path('', NodeListView.as_view(), name='mesh.nodes'),
|
||||
|
@ -19,7 +19,6 @@ urlpatterns = [
|
|||
path('ota/all/', OTAListView.as_view(all=True), name='mesh.ota.list.all'),
|
||||
path('ota/<int:pk>/', OTADetailView.as_view(), name='mesh.ota.detail'),
|
||||
path('nodes/<str:pk>/', NodeDetailView.as_view(), name='mesh.node.detail'),
|
||||
path('nodes/<str:pk>/edit/', NodeEditView.as_view(), name='mesh.node.edit'),
|
||||
path('message/sending/<uuid:uuid>/', MeshMessageSendingView.as_view(), name='mesh.sending'),
|
||||
path('message/<str:recipient>/<str:msg_type>/', MeshMessageSendView.as_view(), name='mesh.send'),
|
||||
path('message/<str:msg_type>/', MeshMessageSendView.as_view(), name='mesh.send'),
|
||||
|
|
|
@ -17,8 +17,9 @@ def indent_c(code):
|
|||
|
||||
def get_node_names():
|
||||
from c3nav.mesh.models import MeshNode
|
||||
from c3nav.mesh.messages import MeshMessageType
|
||||
return {
|
||||
**{node.address: node.name for node in MeshNode.objects.all()},
|
||||
**{node.address: node.name for node in MeshNode.objects.prefetch_last_messages(MeshMessageType.CONFIG_NODE)},
|
||||
'ff:ff:ff:ff:ff:ff': "broadcast",
|
||||
'00:00:00:ff:ff:ff': "direct parent",
|
||||
'00:00:00:00:00:00': "root",
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import DetailView, ListView, UpdateView
|
||||
from django.views.generic import DetailView, ListView
|
||||
|
||||
from c3nav.mesh.forms import MeshNodeForm
|
||||
from c3nav.mesh.models import MeshNode
|
||||
from c3nav.mesh.views.base import MeshControlMixin
|
||||
|
||||
|
@ -28,18 +24,3 @@ class NodeDetailView(MeshControlMixin, DetailView):
|
|||
def get_queryset(self):
|
||||
return super().get_queryset().prefetch_last_messages().prefetch_firmwares().select_related("upstream")
|
||||
|
||||
|
||||
class NodeEditView(MeshControlMixin, SuccessMessageMixin, UpdateView):
|
||||
model = MeshNode
|
||||
form_class = MeshNodeForm
|
||||
template_name = "control/form.html"
|
||||
success_message = _('Name updated successfully')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
return {
|
||||
**super().get_context_data(),
|
||||
'title': _('Editing mesh node: %s') % self.get_object(),
|
||||
}
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('mesh.node.detail', kwargs={'pk': self.get_object().pk})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue