Skip to content

Commit 9fca9ca

Browse files
Merge pull request #8983 from stephanblanke/8163-bridge-members-panel-in-interface-view
Closes #8163: Add bridge members panel to interface view
2 parents 2d09a40 + b7e2ea1 commit 9fca9ca

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

netbox/dcim/models/device_components.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,10 @@ def is_wireless(self):
762762
def is_lag(self):
763763
return self.type == InterfaceTypeChoices.TYPE_LAG
764764

765+
@property
766+
def is_bridge(self):
767+
return self.type == InterfaceTypeChoices.TYPE_BRIDGE
768+
765769
@property
766770
def link(self):
767771
return self.cable or self.wireless_link

netbox/dcim/views.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,6 +1776,14 @@ def get_extra_context(self, request, instance):
17761776
orderable=False
17771777
)
17781778

1779+
# Get bridge interfaces
1780+
bridge_interfaces = Interface.objects.restrict(request.user, 'view').filter(bridge=instance)
1781+
bridge_interfaces_tables = tables.InterfaceTable(
1782+
bridge_interfaces,
1783+
exclude=('device', 'parent'),
1784+
orderable=False
1785+
)
1786+
17791787
# Get child interfaces
17801788
child_interfaces = Interface.objects.restrict(request.user, 'view').filter(parent=instance)
17811789
child_interfaces_tables = tables.InterfaceTable(
@@ -1800,6 +1808,7 @@ def get_extra_context(self, request, instance):
18001808

18011809
return {
18021810
'ipaddress_table': ipaddress_table,
1811+
'bridge_interfaces_table': bridge_interfaces_tables,
18031812
'child_interfaces_table': child_interfaces_tables,
18041813
'vlan_table': vlan_table,
18051814
}

netbox/templates/dcim/interface.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,13 @@ <h5 class="card-header">
467467
{% include 'inc/panel_table.html' with table=vlan_table heading="VLANs" %}
468468
</div>
469469
</div>
470+
{% if object.is_bridge %}
471+
<div class="row mb-3">
472+
<div class="col col-md-12">
473+
{% include 'inc/panel_table.html' with table=bridge_interfaces_table heading="Bridge Interfaces" %}
474+
</div>
475+
</div>
476+
{% endif %}
470477
<div class="row mb-3">
471478
<div class="col col-md-12">
472479
{% include 'inc/panel_table.html' with table=child_interfaces_table heading="Child Interfaces" %}

0 commit comments

Comments
 (0)