diff --git a/src/c3nav/control/templates/control/mesh_node_detail.html b/src/c3nav/control/templates/control/mesh_node_detail.html index 69d4cbea..214f7565 100644 --- a/src/c3nav/control/templates/control/mesh_node_detail.html +++ b/src/c3nav/control/templates/control/mesh_node_detail.html @@ -56,6 +56,11 @@ {% endif %}
++ + {% 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