Adding asdot notation to ASN views

Adds custom property to asn model to compute asdot notation if required.
Updates asn view to show asdot notation if one exists in the format xxxxx (yyy.yyy)
Adds a custom column renderer to asn table to display asdot notation if one exists
This commit is contained in:
Jason Yates 2022-01-12 14:06:22 +00:00
parent be8fef0228
commit ea644868a6
3 changed files with 16 additions and 1 deletions

View File

@ -130,6 +130,14 @@ class ASN(PrimaryModel):
def get_absolute_url(self):
return reverse('ipam:asn', args=[self.pk])
@property
def asdot_notation(self):
# Return asdot notation for an ASN larger than 65535
if self.asn > 65535:
return '{}.{}'.format(self.asn // 65536, self.asn % 65536)
else:
return None
@extras_features('custom_fields', 'custom_links', 'export_templates', 'tags', 'webhooks')
class Aggregate(GetAvailablePrefixesMixin, PrimaryModel):

View File

@ -106,6 +106,13 @@ class ASNTable(BaseTable):
asn = tables.Column(
linkify=True
)
def render_asn(self, value, record):
if record.asdot_notation:
return f'{value} ({record.asdot_notation})'
else:
return value
site_count = LinkedCountColumn(
viewname='dcim:site_list',
url_params={'asn_id': 'pk'},

View File

@ -18,7 +18,7 @@
<table class="table table-hover attr-table">
<tr>
<td>AS Number</td>
<td>{{ object.asn }}</td>
<td>{{ object.asn }} {% if object.asdot_notation %}({{ object.asdot_notation }}){% endif %}</td>
</tr>
<tr>
<td>RIR</td>