From a46d2ce4f1fd76152dcbc1e41eb39aef6aaf57f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laura=20Kl=C3=BCnder?=
+ + {% trans 'Chaange board settings' %} + +
Firmware: {{ 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' %}
- -- {{ node.last_messages.CONFIG_LED.parsed.led_config }} -
- {% endblock %} diff --git a/src/c3nav/control/views/mesh.py b/src/c3nav/control/views/mesh.py index 2870085c..00ca6a78 100644 --- a/src/c3nav/control/views/mesh.py +++ b/src/c3nav/control/views/mesh.py @@ -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"]} diff --git a/src/c3nav/mesh/forms.py b/src/c3nav/mesh/forms.py index f5db1c48..7060658e 100644 --- a/src/c3nav/mesh/forms.py +++ b/src/c3nav/mesh/forms.py @@ -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