group ips by the nets

This commit is contained in:
Andreas Zweili 2020-02-16 16:56:46 +01:00
parent 6ceb604dd4
commit 95161cda3f
2 changed files with 17 additions and 11 deletions

View File

@ -56,13 +56,16 @@ class ConnectedDevice(Device):
net = models.ManyToManyField(Net, through='DeviceInNet')
@property
def ips(self):
nets = DeviceInNet.objects.filter(device=self.id)
ip_addresses = {}
for net in nets:
ip = '{}: {}'.format(net.net.name, net.ip)
ip_addresses[net.net_id] = ip
return ip_addresses
def nets(self):
nets_result = DeviceInNet.objects.filter(device=self.id).order_by('net')
nets = []
for net in nets_result:
ip_addresses = {}
ip_addresses['net_id'] = net.net.id
ip_addresses['ip'] = net.ip
ip_addresses['name'] = net.net.name
nets.append(ip_addresses)
return nets
class Meta:
verbose_name_plural = "Connected Devices"

View File

@ -1,16 +1,19 @@
{% if device.ips %}
{% if device.nets %}
<div class="card">
<div class="content">
<div class="header">IPs</div>
<table class="ui celled table">
{% regroup device.nets by name as nets_list %}
{% for net in nets_list %}
<tr>
<td><b>IPs:</b></td>
<td><b>{{ net.grouper }}</b></td>
<td>
{% for net_id, ip in device.ips.items %}
<a href="{% url 'net' net_id %}">{{ip}}</a><br>
{% for ip in net.list %}
<a href="{% url 'net' ip.net_id %}">{{ ip.ip }}</a><br>
{% endfor %}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>