diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py
index c6a215db8..f90a761a7 100644
--- a/netbox/circuits/tables.py
+++ b/netbox/circuits/tables.py
@@ -2,7 +2,7 @@ import django_tables2 as tables
from django.utils.safestring import mark_safe
from django_tables2.utils import Accessor
-from tenancy.tables import COL_TENANT
+from tenancy.tables import COL_TENANTGROUP_TENANT
from utilities.tables import BaseTable, ToggleColumn
from .models import Circuit, CircuitType, Provider
@@ -76,7 +76,7 @@ class CircuitTable(BaseTable):
cid = tables.LinkColumn(verbose_name='ID')
provider = tables.LinkColumn('circuits:provider', args=[Accessor('provider.slug')])
status = tables.TemplateColumn(template_code=STATUS_LABEL, verbose_name='Status')
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
termination_a = CircuitTerminationColumn(orderable=False, verbose_name='A Side')
termination_z = CircuitTerminationColumn(orderable=False, verbose_name='Z Side')
diff --git a/netbox/dcim/tables.py b/netbox/dcim/tables.py
index 5649c10ef..11dcca81a 100644
--- a/netbox/dcim/tables.py
+++ b/netbox/dcim/tables.py
@@ -1,7 +1,7 @@
import django_tables2 as tables
from django_tables2.utils import Accessor
-from tenancy.tables import COL_TENANT
+from tenancy.tables import COL_TENANT, COL_TENANTGROUP_TENANT
from utilities.tables import BaseTable, BooleanColumn, ColorColumn, ToggleColumn
from .models import (
Cable, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
@@ -214,7 +214,7 @@ class SiteTable(BaseTable):
name = tables.LinkColumn(order_by=('_nat1', '_nat2', '_nat3'))
status = tables.TemplateColumn(template_code=STATUS_LABEL, verbose_name='Status')
region = tables.TemplateColumn(template_code=SITE_REGION_LINK)
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
class Meta(BaseTable.Meta):
model = Site
@@ -275,7 +275,7 @@ class RackTable(BaseTable):
name = tables.LinkColumn(order_by=('_nat1', '_nat2', '_nat3'))
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')])
group = tables.Column(accessor=Accessor('group.name'), verbose_name='Group')
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
status = tables.TemplateColumn(STATUS_LABEL)
role = tables.TemplateColumn(RACK_ROLE)
u_height = tables.TemplateColumn("{{ record.u_height }}U", verbose_name='Height')
@@ -305,7 +305,7 @@ class RackDetailTable(RackTable):
class RackReservationTable(BaseTable):
pk = ToggleColumn()
- tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')])
unit_list = tables.Column(orderable=False, verbose_name='Units')
actions = tables.TemplateColumn(
@@ -512,7 +512,7 @@ class DeviceTable(BaseTable):
template_code=DEVICE_LINK
)
status = tables.TemplateColumn(template_code=STATUS_LABEL, verbose_name='Status')
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')])
rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')])
device_role = tables.TemplateColumn(DEVICE_ROLE, verbose_name='Role')
diff --git a/netbox/ipam/tables.py b/netbox/ipam/tables.py
index 026cbc980..2ae9d562a 100644
--- a/netbox/ipam/tables.py
+++ b/netbox/ipam/tables.py
@@ -2,7 +2,7 @@ import django_tables2 as tables
from django_tables2.utils import Accessor
from dcim.models import Interface
-from tenancy.tables import COL_TENANT
+from tenancy.tables import COL_TENANT,COL_TENANTGROUP_TENANT
from utilities.tables import BaseTable, BooleanColumn, ToggleColumn
from .models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
@@ -169,8 +169,12 @@ VLAN_MEMBER_ACTIONS = """
"""
TENANT_LINK = """
-{% if record.tenant %}
+{% if record.tenant and record.tenant.group %}
+ {{record.tenant.group}}:{{ record.tenant }}
+{% elif record.tenant %}
{{ record.tenant }}
+{% elif record.vrf.tenant.group %}
+ {{record.vrf.tenant.group}}:{{ record.vrf.tenant }}*
{% elif record.vrf.tenant %}
{{ record.vrf.tenant }}*
{% else %}
@@ -187,7 +191,7 @@ class VRFTable(BaseTable):
pk = ToggleColumn()
name = tables.LinkColumn()
rd = tables.Column(verbose_name='RD')
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
class Meta(BaseTable.Meta):
model = VRF
@@ -319,6 +323,7 @@ class PrefixTable(BaseTable):
class PrefixDetailTable(PrefixTable):
utilization = tables.TemplateColumn(UTILIZATION_GRAPH, orderable=False)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
class Meta(PrefixTable.Meta):
fields = ('pk', 'prefix', 'status', 'vrf', 'utilization', 'tenant', 'site', 'vlan', 'role', 'description')
@@ -349,6 +354,7 @@ class IPAddressDetailTable(IPAddressTable):
nat_inside = tables.LinkColumn(
'ipam:ipaddress', args=[Accessor('nat_inside.pk')], orderable=False, verbose_name='NAT (Inside)'
)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
class Meta(IPAddressTable.Meta):
fields = (
@@ -409,7 +415,7 @@ class VLANTable(BaseTable):
vid = tables.TemplateColumn(VLAN_LINK, verbose_name='ID')
site = tables.LinkColumn('dcim:site', args=[Accessor('site.slug')])
group = tables.LinkColumn('ipam:vlangroup_vlans', args=[Accessor('group.pk')], verbose_name='Group')
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
status = tables.TemplateColumn(STATUS_LABEL)
role = tables.TemplateColumn(VLAN_ROLE_LINK)
@@ -423,6 +429,7 @@ class VLANTable(BaseTable):
class VLANDetailTable(VLANTable):
prefixes = tables.TemplateColumn(VLAN_PREFIXES, orderable=False, verbose_name='Prefixes')
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
class Meta(VLANTable.Meta):
fields = ('pk', 'vid', 'site', 'group', 'name', 'prefixes', 'tenant', 'status', 'role', 'description')
diff --git a/netbox/tenancy/tables.py b/netbox/tenancy/tables.py
index 91122df7a..779d3bd2e 100644
--- a/netbox/tenancy/tables.py
+++ b/netbox/tenancy/tables.py
@@ -20,6 +20,16 @@ COL_TENANT = """
{% endif %}
"""
+COL_TENANTGROUP_TENANT = """
+{% if record.tenant and record.tenant.group %}
+ {{record.tenant.group}}:{{ record.tenant }}
+{% elif record.tenant %}
+ {{ record.tenant }}
+{% else %}
+ —
+{% endif %}
+"""
+
#
# Tenant groups
diff --git a/netbox/virtualization/tables.py b/netbox/virtualization/tables.py
index b825ba59f..354f9025d 100644
--- a/netbox/virtualization/tables.py
+++ b/netbox/virtualization/tables.py
@@ -2,7 +2,7 @@ import django_tables2 as tables
from django_tables2.utils import Accessor
from dcim.models import Interface
-from tenancy.tables import COL_TENANT
+from tenancy.tables import COL_TENANTGROUP_TENANT
from utilities.tables import BaseTable, ToggleColumn
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine
@@ -103,7 +103,7 @@ class VirtualMachineTable(BaseTable):
status = tables.TemplateColumn(template_code=VIRTUALMACHINE_STATUS)
cluster = tables.LinkColumn('virtualization:cluster', args=[Accessor('cluster.pk')])
role = tables.TemplateColumn(VIRTUALMACHINE_ROLE)
- tenant = tables.TemplateColumn(template_code=COL_TENANT)
+ tenant = tables.TemplateColumn(template_code=COL_TENANTGROUP_TENANT)
class Meta(BaseTable.Meta):
model = VirtualMachine