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>{{ msg.get_message_type_display }}</td>
<td> <td>
{% if msg.get_message_type_display == "CONFIG_FIRMWARE" %} {% 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> <br>
<strong>Firmware:</strong> {{ msg.parsed.project_name }} {{ msg.parsed.version }} (IDF {{ msg.parsed.idf_version }}) <strong>Firmware:</strong> {{ msg.parsed.project_name }} {{ msg.parsed.version }} (IDF {{ msg.parsed.idf_version }})
<br> <br>

View file

@ -22,7 +22,8 @@
<h4>Firmware</h4> <h4>Firmware</h4>
<p> <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> <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 }}) <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> <br>

View file

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

View file

@ -1,5 +1,6 @@
from collections import UserDict from collections import UserDict
from functools import cached_property from functools import cached_property
from operator import attrgetter
from django.db import models, NotSupportedError from django.db import models, NotSupportedError
from django.utils.translation import gettext_lazy as _ 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( for message in NodeMessage.objects.order_by('-datetime', '-pk').filter(
message_type__in=self._prefetch_last_messages, message_type__in=self._prefetch_last_messages,
src_node__in=nodes.keys(), 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 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: except NotSupportedError:
pass pass
print(tuple(nodes.values())[0].last_messages[MeshMessageType.MESH_SIGNIN])
class LastMessagesByTypeLookup(UserDict): class LastMessagesByTypeLookup(UserDict):
def __init__(self, node): def __init__(self, node):
@ -56,6 +57,10 @@ class LastMessagesByTypeLookup(UserDict):
return MeshMessageType(item) return MeshMessageType(item)
def __getitem__(self, key): 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) key = self._get_key(key)
try: try:
return self.data[key] return self.data[key]