diff --git a/netbox/templates/circuits/circuit.html b/netbox/templates/circuits/circuit.html
index 5c86cb24e4c..3e449ce2219 100644
--- a/netbox/templates/circuits/circuit.html
+++ b/netbox/templates/circuits/circuit.html
@@ -95,33 +95,15 @@
| Install Date |
-
- {% if circuit.install_date %}
- {{ circuit.install_date }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ circuit.install_date|placeholder }} |
| Commit Rate |
-
- {% if circuit.commit_rate %}
- {{ circuit.commit_rate|humanize_speed }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ circuit.commit_rate|humanize_speed|placeholder }} |
| Description |
-
- {% if circuit.description %}
- {{ circuit.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ circuit.description|placeholder }} |
diff --git a/netbox/templates/circuits/inc/circuit_termination.html b/netbox/templates/circuits/inc/circuit_termination.html
index 560322357e9..55432b1595e 100644
--- a/netbox/templates/circuits/inc/circuit_termination.html
+++ b/netbox/templates/circuits/inc/circuit_termination.html
@@ -79,29 +79,17 @@
None
{% endfor %}
{% else %}
- N/A
+ —
{% endif %}
| Cross-Connect |
-
- {% if termination.xconnect_id %}
- {{ termination.xconnect_id }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ termination.xconnect_id|placeholder }} |
| Patch Panel/Port |
-
- {% if termination.pp_info %}
- {{ termination.pp_info }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ termination.pp_info|placeholder }} |
{% else %}
diff --git a/netbox/templates/circuits/provider.html b/netbox/templates/circuits/provider.html
index 99f615a9011..ea936adcb12 100644
--- a/netbox/templates/circuits/provider.html
+++ b/netbox/templates/circuits/provider.html
@@ -67,23 +67,11 @@
| ASN |
-
- {% if provider.asn %}
- {{ provider.asn }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ provider.asn|placeholder }} |
| Account |
-
- {% if provider.account %}
- {{ provider.account }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ provider.account|placeholder }} |
| Customer Portal |
@@ -91,29 +79,17 @@
{% if provider.portal_url %}
{{ provider.portal_url }}
{% else %}
- N/A
+ —
{% endif %}
| NOC Contact |
-
- {% if provider.noc_contact %}
- {{ provider.noc_contact|linebreaksbr }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ provider.noc_contact|linebreaksbr|placeholder }} |
| Admin Contact |
-
- {% if provider.admin_contact %}
- {{ provider.admin_contact|linebreaksbr }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ provider.admin_contact|linebreaksbr|placeholder }} |
| Circuits |
diff --git a/netbox/templates/dcim/cable.html b/netbox/templates/dcim/cable.html
index 3bf99465f88..a9b61aaf173 100644
--- a/netbox/templates/dcim/cable.html
+++ b/netbox/templates/dcim/cable.html
@@ -51,7 +51,7 @@
| Label |
- {% if cable.label %}{{ cable.label }}{% else %}N/A{% endif %} |
+ {{ cable.labe|placeholder }} |
| Color |
@@ -69,7 +69,7 @@
{% if cable.length %}
{{ cable.length }} {{ cable.get_length_unit_display }}
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html
index 7289909b140..fb633c612f2 100644
--- a/netbox/templates/dcim/device.html
+++ b/netbox/templates/dcim/device.html
@@ -142,7 +142,7 @@
{% elif device.rack and device.device_type.u_height %}
Not racked
{% else %}
- N/A
+ —
{% endif %}
@@ -168,23 +168,11 @@
| Serial Number |
-
- {% if device.serial %}
- {{ device.serial }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ device.serial|placeholder }} |
| Asset Tag |
-
- {% if device.asset_tag %}
- {{ device.asset_tag }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ device.asset_tag|placeholder }} |
@@ -266,7 +254,7 @@
(NAT: {{ device.primary_ip4.nat_outside.address.ip }})
{% endif %}
{% else %}
- N/A
+ —
{% endif %}
@@ -281,7 +269,7 @@
(NAT: {{ device.primary_ip6.nat_outside.address.ip }})
{% endif %}
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/templates/dcim/device_inventory.html b/netbox/templates/dcim/device_inventory.html
index 1efbd0fbc5c..d9f8c549506 100644
--- a/netbox/templates/dcim/device_inventory.html
+++ b/netbox/templates/dcim/device_inventory.html
@@ -1,4 +1,5 @@
{% extends 'dcim/device.html' %}
+{% load helpers %}
{% block title %}{{ device }} - Inventory{% endblock %}
@@ -16,23 +17,11 @@
| Serial Number |
-
- {% if device.serial %}
- {{ device.serial }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ device.serial|placeholder }} |
| Asset Tag |
-
- {% if device.asset_tag %}
- {{ device.asset_tag }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ device.asset_tag|placeholder }} |
diff --git a/netbox/templates/dcim/devicetype.html b/netbox/templates/dcim/devicetype.html
index 1719e8f66d2..0b0f8698ba3 100644
--- a/netbox/templates/dcim/devicetype.html
+++ b/netbox/templates/dcim/devicetype.html
@@ -74,13 +74,7 @@
| Part Number |
-
- {% if devicetype.part_number %}
- {{ devicetype.part_number }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ devicetype.part_number|placeholder }} |
| Height (U) |
@@ -104,7 +98,7 @@
{% elif devicetype.subdevice_role == False %}
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/templates/dcim/interface.html b/netbox/templates/dcim/interface.html
index ed5313c7dd6..2ca17ac33fd 100644
--- a/netbox/templates/dcim/interface.html
+++ b/netbox/templates/dcim/interface.html
@@ -82,33 +82,15 @@
| Description |
-
- {% if interface.description %}
- {{ interface.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ interface.description|placeholder }} |
| MTU |
-
- {% if interface.mtu %}
- {{ interface.mtu }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ interface.mtu|placeholder }} |
| MAC Address |
-
- {% if interface.mac_address %}
- {{ interface.mac_address }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ interface.mac_address|placeholder }} |
| 802.1Q Mode |
@@ -165,33 +147,15 @@
| Description |
-
- {% if connected_interface.description %}
- {{ connected_interface.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ connected_interface.description|placeholder }} |
| MTU |
-
- {% if connected_interface.mtu %}
- {{ connected_interface.mtu }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ connected_interface.mtu|placeholder }} |
| MAC Address |
-
- {% if connected_interface.mac_address %}
- {{ connected_interface.mac_address }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ connected_interface.mac_address|placeholder }} |
| 802.1Q Mode |
diff --git a/netbox/templates/dcim/rack.html b/netbox/templates/dcim/rack.html
index 2e17d04e7d9..f78fb950316 100644
--- a/netbox/templates/dcim/rack.html
+++ b/netbox/templates/dcim/rack.html
@@ -83,13 +83,7 @@
| Facility ID |
-
- {% if rack.facility_id %}
- {{ rack.facility_id }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ rack.facility_id|placeholder }} |
| Tenant |
@@ -123,23 +117,11 @@
| Serial Number |
-
- {% if rack.serial %}
- {{ rack.serial }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ rack.serial|placeholder }} |
| Asset Tag |
-
- {% if rack.asset_tag %}
- {{ rack.asset_tag }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ rack.asset_tag|placeholder }} |
| Devices |
@@ -231,7 +213,7 @@
{% if device.parent_bay %}
{{ device.parent_bay }}
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/templates/dcim/site.html b/netbox/templates/dcim/site.html
index b74521e9c4f..1b35b0db98d 100644
--- a/netbox/templates/dcim/site.html
+++ b/netbox/templates/dcim/site.html
@@ -106,23 +106,11 @@
| Facility |
-
- {% if site.facility %}
- {{ site.facility }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ site.facility|placeholder }} |
| AS Number |
-
- {% if site.asn %}
- {{ site.asn }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ site.asn|placeholder }} |
| Time Zone |
@@ -131,19 +119,13 @@
{{ site.time_zone }} (UTC {{ site.time_zone|tzoffset }})
Site time: {% timezone site.time_zone %}{% now "SHORT_DATETIME_FORMAT" %}{% endtimezone %}
{% else %}
- N/A
+ —
{% endif %}
| Description |
-
- {% if site.description %}
- {{ site.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ site.description|placeholder }} |
@@ -163,19 +145,13 @@
{{ site.physical_address|linebreaksbr }}
{% else %}
- N/A
+ —
{% endif %}
| Shipping Address |
-
- {% if site.shipping_address %}
- {{ site.shipping_address|linebreaksbr }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ site.shipping_address|linebreaksbr|placeholder }} |
| GPS Coordinates |
@@ -188,19 +164,13 @@
{{ site.latitude }}, {{ site.longitude }}
{% else %}
- N/A
+ —
{% endif %}
| Contact Name |
-
- {% if site.contact_name %}
- {{ site.contact_name }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ site.contact_name|placeholder }} |
| Contact Phone |
@@ -208,7 +178,7 @@
{% if site.contact_phone %}
{{ site.contact_phone }}
{% else %}
- N/A
+ —
{% endif %}
@@ -218,7 +188,7 @@
{% if site.contact_email %}
{{ site.contact_email }}
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/templates/dcim/virtualchassis_edit.html b/netbox/templates/dcim/virtualchassis_edit.html
index 097cb487f12..2665473fccc 100644
--- a/netbox/templates/dcim/virtualchassis_edit.html
+++ b/netbox/templates/dcim/virtualchassis_edit.html
@@ -1,4 +1,5 @@
{% extends '_base.html' %}
+{% load helpers %}
{% load form_helpers %}
{% block content %}
@@ -52,16 +53,10 @@
{% if device.rack %}
{{ device.rack }} / {{ device.position }}
{% else %}
- N/A
- {% endif %}
-
-
- {% if device.serial %}
- {{ device.serial }}
- {% else %}
- N/A
+ —
{% endif %}
|
+ {{ device.serial|placeholder }} |
{{ form.vc_position }}
{% if form.vc_position.errors %}
diff --git a/netbox/templates/extras/configcontext.html b/netbox/templates/extras/configcontext.html
index c987daf3327..6c14b7b16c5 100644
--- a/netbox/templates/extras/configcontext.html
+++ b/netbox/templates/extras/configcontext.html
@@ -55,13 +55,7 @@
|
| Description |
-
- {% if configcontext.description %}
- {{ configcontext.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ configcontext.description|placeholder }} |
| Active |
diff --git a/netbox/templates/inc/custom_fields_panel.html b/netbox/templates/inc/custom_fields_panel.html
index e469048af0a..52d9c2d6ee3 100644
--- a/netbox/templates/inc/custom_fields_panel.html
+++ b/netbox/templates/inc/custom_fields_panel.html
@@ -20,7 +20,7 @@
{% elif field.required %}
Not defined
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/templates/ipam/aggregate.html b/netbox/templates/ipam/aggregate.html
index 129d9d071f9..0dfdd8260b3 100644
--- a/netbox/templates/ipam/aggregate.html
+++ b/netbox/templates/ipam/aggregate.html
@@ -75,23 +75,11 @@
| Date Added |
-
- {% if aggregate.date_added %}
- {{ aggregate.date_added }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ aggregate.date_added|placeholder }} |
| Description |
-
- {% if aggregate.description %}
- {{ aggregate.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ aggregate.description|placeholder }} |
diff --git a/netbox/templates/ipam/ipaddress.html b/netbox/templates/ipam/ipaddress.html
index a8501c8a022..f822ac2b8d3 100644
--- a/netbox/templates/ipam/ipaddress.html
+++ b/netbox/templates/ipam/ipaddress.html
@@ -105,13 +105,7 @@
| Description |
-
- {% if ipaddress.description %}
- {{ ipaddress.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ ipaddress.description|placeholder }} |
| Assignment |
@@ -119,7 +113,7 @@
{% if ipaddress.interface %}
{{ ipaddress.interface.parent }} ({{ ipaddress.interface }})
{% else %}
- None
+ —
{% endif %}
diff --git a/netbox/templates/ipam/prefix.html b/netbox/templates/ipam/prefix.html
index f621a0130b5..0e3aff6b03d 100644
--- a/netbox/templates/ipam/prefix.html
+++ b/netbox/templates/ipam/prefix.html
@@ -160,13 +160,7 @@
| Description |
-
- {% if prefix.description %}
- {{ prefix.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ prefix.description|placeholder }} |
| Is a pool |
diff --git a/netbox/templates/ipam/service.html b/netbox/templates/ipam/service.html
index a0f1e57a5aa..17b1d971e8b 100644
--- a/netbox/templates/ipam/service.html
+++ b/netbox/templates/ipam/service.html
@@ -70,13 +70,7 @@
| Description |
-
- {% if service.description %}
- {{ service.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ service.description|placeholder }} |
diff --git a/netbox/templates/ipam/vlan.html b/netbox/templates/ipam/vlan.html
index 73e87149b63..96e3a5e1044 100644
--- a/netbox/templates/ipam/vlan.html
+++ b/netbox/templates/ipam/vlan.html
@@ -129,13 +129,7 @@
| Description |
-
- {% if vlan.description %}
- {{ vlan.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ vlan.description|placeholder }} |
diff --git a/netbox/templates/ipam/vrf.html b/netbox/templates/ipam/vrf.html
index a69ccd0f574..f8921280427 100644
--- a/netbox/templates/ipam/vrf.html
+++ b/netbox/templates/ipam/vrf.html
@@ -82,13 +82,7 @@
| Description |
-
- {% if vrf.description %}
- {{ vrf.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ vrf.description|placeholder }} |
diff --git a/netbox/templates/secrets/secret.html b/netbox/templates/secrets/secret.html
index bfe700938b3..6d3119d5b96 100644
--- a/netbox/templates/secrets/secret.html
+++ b/netbox/templates/secrets/secret.html
@@ -59,13 +59,7 @@
| Name |
-
- {% if secret.name %}
- {{ secret.name }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ secret.name|placeholder }} |
diff --git a/netbox/templates/tenancy/tenant.html b/netbox/templates/tenancy/tenant.html
index 6f2131a512e..67f3c72fefd 100644
--- a/netbox/templates/tenancy/tenant.html
+++ b/netbox/templates/tenancy/tenant.html
@@ -71,13 +71,7 @@
| Description |
-
- {% if tenant.description %}
- {{ tenant.description }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ tenant.description|placeholder }} |
diff --git a/netbox/templates/virtualization/virtualmachine.html b/netbox/templates/virtualization/virtualmachine.html
index 552aaa9970b..410ab32e53f 100644
--- a/netbox/templates/virtualization/virtualmachine.html
+++ b/netbox/templates/virtualization/virtualmachine.html
@@ -116,7 +116,7 @@
(NAT: {{ virtualmachine.primary_ip4.nat_outside.address.ip }})
{% endif %}
{% else %}
- N/A
+ —
{% endif %}
@@ -131,7 +131,7 @@
(NAT: {{ virtualmachine.primary_ip6.nat_outside.address.ip }})
{% endif %}
{% else %}
- N/A
+ —
{% endif %}
@@ -181,13 +181,7 @@
| Virtual CPUs |
-
- {% if virtualmachine.vcpus %}
- {{ virtualmachine.vcpus }}
- {% else %}
- N/A
- {% endif %}
- |
+ {{ virtualmachine.vcpus|placeholder }} |
| Memory |
@@ -195,7 +189,7 @@
{% if virtualmachine.memory %}
{{ virtualmachine.memory }} MB
{% else %}
- N/A
+ —
{% endif %}
@@ -205,7 +199,7 @@
{% if virtualmachine.disk %}
{{ virtualmachine.disk }} GB
{% else %}
- N/A
+ —
{% endif %}
diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py
index 0d5063ae0d7..9fcbf2edd9c 100644
--- a/netbox/utilities/templatetags/helpers.py
+++ b/netbox/utilities/templatetags/helpers.py
@@ -22,6 +22,16 @@ def oneline(value):
"""
return value.replace('\n', ' ')
+@register.filter()
+def placeholder(value):
+ """
+ Render a muted placeholder if value equates to False.
+ """
+ if value:
+ return value
+ placeholder = '—'
+ return mark_safe(placeholder)
+
@register.filter()
def getlist(value, arg):
@@ -97,6 +107,8 @@ def humanize_speed(speed):
100000 => "100 Mbps"
10000000 => "10 Gbps"
"""
+ if not speed:
+ return ''
if speed >= 1000000000 and speed % 1000000000 == 0:
return '{} Tbps'.format(int(speed / 1000000000))
elif speed >= 1000000 and speed % 1000000 == 0: