Browse Source

Closes #1122: Include NAT inside IPs in IP address list

Jeremy Stretch 8 years ago
parent
commit
7f23cb9bf5
2 changed files with 15 additions and 4 deletions
  1. 14 3
      netbox/ipam/tables.py
  2. 1 1
      netbox/ipam/views.py

+ 14 - 3
netbox/ipam/tables.py

@@ -76,6 +76,15 @@ IPADDRESS_LINK = """
 {% endif %}
 {% endif %}
 """
 """
 
 
+IPADDRESS_DEVICE = """
+{% if record.interface %}
+    <a href="{{ record.interface.device.get_absolute_url }}">{{ record.interface.device }}</a>
+    ({{ record.interface.name }})
+{% else %}
+    &mdash;
+{% endif %}
+"""
+
 VRF_LINK = """
 VRF_LINK = """
 {% if record.vrf %}
 {% if record.vrf %}
     <a href="{{ record.vrf.get_absolute_url }}">{{ record.vrf }}</a>
     <a href="{{ record.vrf.get_absolute_url }}">{{ record.vrf }}</a>
@@ -281,12 +290,14 @@ class IPAddressTable(BaseTable):
     status = tables.TemplateColumn(STATUS_LABEL)
     status = tables.TemplateColumn(STATUS_LABEL)
     vrf = tables.TemplateColumn(VRF_LINK, verbose_name='VRF')
     vrf = tables.TemplateColumn(VRF_LINK, verbose_name='VRF')
     tenant = tables.TemplateColumn(TENANT_LINK)
     tenant = tables.TemplateColumn(TENANT_LINK)
-    device = tables.LinkColumn('dcim:device', args=[Accessor('interface.device.pk')], orderable=False)
-    interface = tables.Column(orderable=False)
+    nat_inside = tables.LinkColumn(
+        'ipam:ipaddress', args=[Accessor('nat_inside.pk')], orderable=False, verbose_name='NAT (Inside)'
+    )
+    device = tables.TemplateColumn(IPADDRESS_DEVICE, orderable=False)
 
 
     class Meta(BaseTable.Meta):
     class Meta(BaseTable.Meta):
         model = IPAddress
         model = IPAddress
-        fields = ('pk', 'address', 'status', 'vrf', 'tenant', 'device', 'interface', 'description')
+        fields = ('pk', 'address', 'status', 'vrf', 'tenant', 'nat_inside', 'device', 'description')
         row_attrs = {
         row_attrs = {
             'class': lambda record: 'success' if not isinstance(record, IPAddress) else '',
             'class': lambda record: 'success' if not isinstance(record, IPAddress) else '',
         }
         }

+ 1 - 1
netbox/ipam/views.py

@@ -533,7 +533,7 @@ def prefix_ipaddresses(request, pk):
 #
 #
 
 
 class IPAddressListView(ObjectListView):
 class IPAddressListView(ObjectListView):
-    queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device')
+    queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device', 'nat_inside')
     filter = filters.IPAddressFilter
     filter = filters.IPAddressFilter
     filter_form = forms.IPAddressFilterForm
     filter_form = forms.IPAddressFilterForm
     table = tables.IPAddressTable
     table = tables.IPAddressTable