|
@@ -39,6 +39,16 @@ PREFIX_LINK_BRIEF = """
|
|
</span>
|
|
</span>
|
|
"""
|
|
"""
|
|
|
|
|
|
|
|
+IPADDRESS_LINK = """
|
|
|
|
+{% if record.pk %}
|
|
|
|
+ <a href="{{ record.get_absolute_url }}">{{ record.address }}</a>
|
|
|
|
+{% elif perms.ipam.add_ipaddress %}
|
|
|
|
+ <a href="{% url 'ipam:ipaddress_add' %}?address={{ record.1 }}" class="btn btn-xs btn-success">{% if record.0 <= 65536 %}{{ record.0 }}{% else %}Lots of{% endif %} free IP{{ record.0|pluralize }}</a>
|
|
|
|
+{% else %}
|
|
|
|
+ {{ record.0 }}
|
|
|
|
+{% endif %}
|
|
|
|
+"""
|
|
|
|
+
|
|
STATUS_LABEL = """
|
|
STATUS_LABEL = """
|
|
{% if record.pk %}
|
|
{% if record.pk %}
|
|
<span class="label label-{{ record.get_status_class }}">{{ record.get_status_display }}</span>
|
|
<span class="label label-{{ record.get_status_class }}">{{ record.get_status_display }}</span>
|
|
@@ -148,6 +158,9 @@ class PrefixTable(BaseTable):
|
|
class Meta(BaseTable.Meta):
|
|
class Meta(BaseTable.Meta):
|
|
model = Prefix
|
|
model = Prefix
|
|
fields = ('pk', 'prefix', 'status', 'vrf', 'tenant', 'site', 'role', 'description')
|
|
fields = ('pk', 'prefix', 'status', 'vrf', 'tenant', 'site', 'role', 'description')
|
|
|
|
+ row_attrs = {
|
|
|
|
+ 'class': lambda record: 'success' if not record.pk else '',
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
class PrefixBriefTable(BaseTable):
|
|
class PrefixBriefTable(BaseTable):
|
|
@@ -169,7 +182,7 @@ class PrefixBriefTable(BaseTable):
|
|
|
|
|
|
class IPAddressTable(BaseTable):
|
|
class IPAddressTable(BaseTable):
|
|
pk = ToggleColumn()
|
|
pk = ToggleColumn()
|
|
- address = tables.LinkColumn('ipam:ipaddress', args=[Accessor('pk')], verbose_name='IP Address')
|
|
+ address = tables.TemplateColumn(IPADDRESS_LINK, verbose_name='IP Address')
|
|
vrf = tables.LinkColumn('ipam:vrf', args=[Accessor('vrf.pk')], default='Global', verbose_name='VRF')
|
|
vrf = tables.LinkColumn('ipam:vrf', args=[Accessor('vrf.pk')], default='Global', verbose_name='VRF')
|
|
tenant = tables.TemplateColumn(TENANT_LINK, verbose_name='Tenant')
|
|
tenant = tables.TemplateColumn(TENANT_LINK, verbose_name='Tenant')
|
|
device = tables.LinkColumn('dcim:device', args=[Accessor('interface.device.pk')], orderable=False,
|
|
device = tables.LinkColumn('dcim:device', args=[Accessor('interface.device.pk')], orderable=False,
|
|
@@ -180,6 +193,9 @@ class IPAddressTable(BaseTable):
|
|
class Meta(BaseTable.Meta):
|
|
class Meta(BaseTable.Meta):
|
|
model = IPAddress
|
|
model = IPAddress
|
|
fields = ('pk', 'address', 'vrf', 'tenant', 'device', 'interface', 'description')
|
|
fields = ('pk', 'address', 'vrf', 'tenant', 'device', 'interface', 'description')
|
|
|
|
+ row_attrs = {
|
|
|
|
+ 'class': lambda record: 'success' if not isinstance(record, IPAddress) else '',
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
class IPAddressBriefTable(BaseTable):
|
|
class IPAddressBriefTable(BaseTable):
|