diff --git a/netbox/dns/tables.py b/netbox/dns/tables.py index 8d0177584..3444bc84c 100644 --- a/netbox/dns/tables.py +++ b/netbox/dns/tables.py @@ -49,4 +49,15 @@ class RecordBriefTable(BaseTable): class Meta(BaseTable.Meta): model=Record fields = ('name', 'record_type', 'priority', 'zone') + +class RecordZoneTable(BaseTable): + name = tables.LinkColumn('dns:record', args=[Accessor('pk')], verbose_name='Name') + record_type = tables.Column(verbose_name='Type') + priority = tables.Column(verbose_name='Priority') + address = tables.LinkColumn('ipam:ipaddress', args=[Accessor('address.pk')], verbose_name='IP Address') + value = tables.Column(verbose_name='Value') + + class Meta(BaseTable.Meta): + model=Record + fields = ('name', 'record_type', 'priority', 'address', 'value') \ No newline at end of file diff --git a/netbox/dns/views.py b/netbox/dns/views.py index 8b3c4bbf2..55aa0bf10 100644 --- a/netbox/dns/views.py +++ b/netbox/dns/views.py @@ -13,6 +13,7 @@ from utilities.views import ( from . import filters, forms, tables from .models import Zone, Record +from .tables import RecordZoneTable # # Zones @@ -33,6 +34,10 @@ def zone(request, pk): record_count = len(records) bind_export = zone.to_bind(records) + # DNS records + dns_records = Record.objects.filter(zone=zone) + dns_records_table = RecordZoneTable(dns_records) + if request.GET.get('bind_export'): response = HttpResponse( bind_export, @@ -47,6 +52,7 @@ def zone(request, pk): 'zone': zone, 'records': records, 'record_count': record_count, + 'dns_records_table': dns_records_table, 'bind_export': bind_export, }) diff --git a/netbox/templates/dns/zone.html b/netbox/templates/dns/zone.html index 90a72ffce..e85592a34 100644 --- a/netbox/templates/dns/zone.html +++ b/netbox/templates/dns/zone.html @@ -112,45 +112,9 @@
-
-
- Records -
- {% if records %} - - {% for r in records %} - - - - - - - {% endfor %} -
- {{ r }} - {{ r.record_type }} - {% if r.priority %} - {{ r.priority }} - {% else %} - - - {% endif %} - - {% if r.address %} - {{ r.address }} - {% else %} - - - {% endif %} - - {% if r.value %} - {{ r.value }} - {% else %} - - - {% endif %} -
- {% else %} -
None
- {% endif %} -
+ {% with heading='Records' %} + {% render_table dns_records_table 'panel_table.html' %} + {% endwith %}