improve mesh forms and stuff

This commit is contained in:
Laura Klünder 2023-10-20 23:50:47 +02:00
parent 22027cc8af
commit a46d2ce4f1
3 changed files with 12 additions and 17 deletions

View file

@ -56,6 +56,11 @@
{% endif %}
</p>
<p>
<a class="button" href="{% url "control.mesh.send" recipient=node.address msg_type="CONFIG_BOARD" %}">
{% trans 'Chaange board settings' %}
</a>
</p>
<h4>Firmware</h4>
<p>
<strong>Firmware:</strong> {{ node.last_messages.CONFIG_FIRMWARE.parsed.app_desc.project_name }} {{ node.last_messages.CONFIG_FIRMWARE.parsed.version }} (IDF {{ node.last_messages.CONFIG_FIRMWARE.parsed.app_desc.idf_version }})
@ -91,16 +96,6 @@
{% trans 'Change' %}
</a>
</p>
<h4>LED config</h4>
<p>
{{ node.last_messages.CONFIG_LED.parsed.led_config }}
</p>
<p>
<a class="button" href="{% url "control.mesh.send" recipient=node.address msg_type="CONFIG_LED" %}">
{% trans 'Change' %}
</a>
</p>
</div>
</div>
{% endblock %}

View file

@ -120,13 +120,18 @@ class MeshMessageSendView(ControlPanelMixin, FormView):
if 'recipient' in self.kwargs and self.msg_type.name.startswith('CONFIG_'):
try:
node = MeshNode.objects.get(address=self.kwargs['recipient'])
return {}
except MeshNode.DoesNotExist:
pass
else:
return MeshMessage.get_type(self.msg_type).tojson(
initial = MeshMessage.get_type(self.msg_type).tojson(
node.last_messages[self.msg_type].parsed
)
while keys := tuple(key for key, value in initial.items() if isinstance(value, dict)):
for key in keys:
subdict = initial.pop(key)
for subkey, value in subdict.items():
initial[key+"_"+subkey.removeprefix(key).lstrip('_')] = value
return initial
if 'address' in self.request.GET and self.msg_type == MeshMessageType.MESH_ROUTE_REQUEST:
return {"address": self.request.GET["address"]}

View file

@ -248,11 +248,6 @@ class ConfigBoardMessageForm(MeshMessageForm):
return cleaned_data
def __init__(self, *args, initial=None, **kwargs):
if initial:
initial.update(initial.pop('led_config'))
super().__init__(*args, initial=initial, **kwargs)
class ConfigPositionMessageForm(MeshMessageForm):
msg_type = MeshMessageType.CONFIG_POSITION