mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-25 22:22:26 +00:00
Merge branch 'mac_vendor' into 'dev'
Mac vendor See merge request federez/re2o!403
This commit is contained in:
commit
522b5be317
2 changed files with 33 additions and 1 deletions
|
@ -44,7 +44,7 @@ from django.utils import timezone
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from macaddress.fields import MACAddressField, default_dialect
|
from macaddress.fields import MACAddressField, default_dialect
|
||||||
from netaddr import mac_bare, EUI, IPSet, IPRange, IPNetwork, IPAddress
|
from netaddr import mac_bare, EUI, NotRegisteredError, IPSet, IPRange, IPNetwork, IPAddress
|
||||||
|
|
||||||
import preferences.models
|
import preferences.models
|
||||||
import users.models
|
import users.models
|
||||||
|
@ -1044,6 +1044,16 @@ class Interface(RevMixin, AclMixin, FieldPermissionModelMixin, models.Model):
|
||||||
IPv6Address(prefix_v6).exploded[:20] +
|
IPv6Address(prefix_v6).exploded[:20] +
|
||||||
IPv6Address(self.id).exploded[20:]
|
IPv6Address(self.id).exploded[20:]
|
||||||
)
|
)
|
||||||
|
@cached_property
|
||||||
|
def get_vendor(self):
|
||||||
|
"""Retourne le vendeur associé à la mac de l'interface"""
|
||||||
|
mac = EUI(self.mac_address)
|
||||||
|
try:
|
||||||
|
oui = mac.oui
|
||||||
|
vendor = oui.registration().org
|
||||||
|
except NotRegisteredError:
|
||||||
|
vendor = "Unknown vendor"
|
||||||
|
return(vendor)
|
||||||
|
|
||||||
def sync_ipv6_dhcpv6(self):
|
def sync_ipv6_dhcpv6(self):
|
||||||
"""Affecte une ipv6 dhcpv6 calculée à partir de l'id de la machine"""
|
"""Affecte une ipv6 dhcpv6 calculée à partir de l'id de la machine"""
|
||||||
|
|
|
@ -92,6 +92,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ interface.mac_address }}
|
{{ interface.mac_address }}
|
||||||
|
<button class="btn btn-default btn-xs" type="button" data-toggle="collapse"
|
||||||
|
data-target="#collapseVendor_{{ interface.id }}" aria-expanded="true"
|
||||||
|
aria-controls="collapseVendor_{{ interface.id }}">
|
||||||
|
{% trans "Display the vendor" %}
|
||||||
|
</button>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<b>IPv4</b> {{ interface.ipv4 }}
|
<b>IPv4</b> {{ interface.ipv4 }}
|
||||||
|
@ -163,6 +168,17 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan=5 style="border-top: none; padding: 1px;">
|
||||||
|
<div class="collapse in" id="collapseVendor_{{ interface.id }}">
|
||||||
|
<ul class="list-group" style="margin-bottom: 0;">
|
||||||
|
<li class="list-group-item col-xs-6 col-sm-6 col-md-6" style="border: none;">
|
||||||
|
{{ interface.get_vendor }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
{% if ipv6_enabled and interface.ipv6 != 'None' %}
|
{% if ipv6_enabled and interface.ipv6 != 'None' %}
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=5 style="border-top: none; padding: 1px;">
|
<td colspan=5 style="border-top: none; padding: 1px;">
|
||||||
|
@ -217,6 +233,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
ipv6_div[i].collapse('hide');
|
ipv6_div[i].collapse('hide');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$("#machines_table").ready(function () {
|
||||||
|
var vendor_div = [{% for machine in machines_list %}{% for interface in machine.interface_set.all %}{% if interface.get_vendor %}$("#collapseVendor_{{ interface.id }}"), {% endif %}{% endfor %}{% endfor %}];
|
||||||
|
for (var i = 0; i < vendor_div.length; i++) {
|
||||||
|
vendor_div[i].collapse('hide');
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% if machines_list.paginator %}
|
{% if machines_list.paginator %}
|
||||||
|
|
Loading…
Reference in a new issue