some more fixes and stuff

This commit is contained in:
Laura Klünder 2023-10-04 23:24:49 +02:00
parent 7e759fefd5
commit d4c5fbefd9
4 changed files with 15 additions and 6 deletions

View file

@ -35,7 +35,7 @@
<td>{{ msg.get_message_type_display }}</td>
<td>
{% if msg.get_message_type_display == "CONFIG_FIRMWARE" %}
<strong>Chip:</strong> {{ msg.parsed.get_chip_display }} rev{{ msg.parsed.revision|join:"." }}
<strong>Chip:</strong> {{ msg.parsed.get_chip_display }} rev{{ msg.parsed.revision_major }}.{{ msg.parsed.revision_minor }}
<br>
<strong>Firmware:</strong> {{ msg.parsed.project_name }} {{ msg.parsed.version }} (IDF {{ msg.parsed.idf_version }})
<br>

View file

@ -22,7 +22,8 @@
<h4>Firmware</h4>
<p>
<strong>Chip:</strong> {{ node.last_messages.CONFIG_FIRMWARE.parsed.get_chip_display }} rev{{ node.last_messages.CONFIG_FIRMWARE.parsed.revision|join:"." }}
<strong>Chip:</strong> {{ node.last_messages.CONFIG_FIRMWARE.parsed.get_chip_display }}
rev{{ node.last_messages.CONFIG_FIRMWARE.parsed.revision_major }}.{{ node.last_messages.CONFIG_FIRMWARE.parsed.revision_minor }}
<br>
<strong>Firmware:</strong> {{ node.last_messages.CONFIG_FIRMWARE.parsed.project_name }} {{ node.last_messages.CONFIG_FIRMWARE.parsed.version }} (IDF {{ node.last_messages.CONFIG_FIRMWARE.parsed.idf_version }})
<br>

View file

@ -4,6 +4,9 @@
{% block heading %}{% trans 'Mesh' %}{% endblock %}
{% block subcontent %}
<a class="button" href="{% url "control.mesh_messages" %}">
{% trans 'View messages' %}
</a>
<table>
<tr>
<th>{% trans 'Node' %}</th>
@ -18,7 +21,7 @@
<td><a href="{% url "control.mesh_node.detail" pk=node.address %}">{{ node }}</a></td>
<td>
{{ node.last_messages.CONFIG_FIRMWARE.parsed.get_chip_display }}
rev{{ node.last_messages.CONFIG_FIRMWARE.parsed.revision|join:"." }}
rev{{ node.last_messages.CONFIG_FIRMWARE.parsed.revision_major }}.{{ node.last_messages.CONFIG_FIRMWARE.parsed.revision_minor }}
</td>
<td>
{{ node.last_messages.CONFIG_FIRMWARE.parsed.version }}

View file

@ -1,5 +1,6 @@
from collections import UserDict
from functools import cached_property
from operator import attrgetter
from django.db import models, NotSupportedError
from django.utils.translation import gettext_lazy as _
@ -33,12 +34,12 @@ class MeshNodeQuerySet(models.QuerySet):
for message in NodeMessage.objects.order_by('-datetime', '-pk').filter(
message_type__in=self._prefetch_last_messages,
src_node__in=nodes.keys(),
).distinct('message_type', 'src_node'):
).prefetch_related("uplink_node").distinct('message_type', 'src_node'):
nodes[message.node].last_messages[message.message_type] = message
for node in nodes.values():
node.last_messages["any"] = max(node.last_messages.values(), key=attrgetter("datetime"))
except NotSupportedError:
pass
print(tuple(nodes.values())[0].last_messages[MeshMessageType.MESH_SIGNIN])
class LastMessagesByTypeLookup(UserDict):
def __init__(self, node):
@ -56,6 +57,10 @@ class LastMessagesByTypeLookup(UserDict):
return MeshMessageType(item)
def __getitem__(self, key):
if key == "any":
msg = self.node.received_messages.order_by('-datetime', '-pk').first()
self.data["any"] = msg
return msg
key = self._get_key(key)
try:
return self.data[key]