diff --git a/netbox/templates/wireless/panels/wirelesslink_interface_a.html b/netbox/templates/wireless/panels/wirelesslink_interface.html similarity index 50% rename from netbox/templates/wireless/panels/wirelesslink_interface_a.html rename to netbox/templates/wireless/panels/wirelesslink_interface.html index 80aaa2d04..21083a8fa 100644 --- a/netbox/templates/wireless/panels/wirelesslink_interface_a.html +++ b/netbox/templates/wireless/panels/wirelesslink_interface.html @@ -1,34 +1,34 @@ +{% extends "ui/panels/_base.html" %} {% load helpers %} {% load i18n %} -
-

{% trans "Interface" %} A

+{% block panel_content %} - + - + - + - + - +
{% trans "Device" %}{{ object.interface_a.device|linkify }}{{ interface.device|linkify }}
{% trans "Interface" %}{{ object.interface_a|linkify }}{{ interface|linkify }}
{% trans "Type" %}{{ object.interface_a.get_type_display }}{{ interface.get_type_display }}
{% trans "Role" %}{{ object.interface_a.get_rf_role_display|placeholder }}{{ interface.get_rf_role_display|placeholder }}
{% trans "Channel" %}{{ object.interface_a.get_rf_channel_display|placeholder }}{{ interface.get_rf_channel_display|placeholder }}
{% trans "Channel Frequency" %} - {% if object.interface_a.rf_channel_frequency %} - {{ object.interface_a.rf_channel_frequency|floatformat:"-2" }} {% trans "MHz" context "Abbreviation for megahertz" %} + {% if interface.rf_channel_frequency %} + {{ interface.rf_channel_frequency|floatformat:"-2" }} {% trans "MHz" context "Abbreviation for megahertz" %} {% else %} {{ ''|placeholder }} {% endif %} @@ -37,12 +37,12 @@
{% trans "Channel Width" %} - {% if object.interface_a.rf_channel_width %} - {{ object.interface_a.rf_channel_width|floatformat:"-3" }} {% trans "MHz" context "Abbreviation for megahertz" %} + {% if interface.rf_channel_width %} + {{ interface.rf_channel_width|floatformat:"-3" }} {% trans "MHz" context "Abbreviation for megahertz" %} {% else %} {{ ''|placeholder }} {% endif %}
-
+{% endblock panel_content %} diff --git a/netbox/templates/wireless/panels/wirelesslink_interface_b.html b/netbox/templates/wireless/panels/wirelesslink_interface_b.html deleted file mode 100644 index 2538bfef1..000000000 --- a/netbox/templates/wireless/panels/wirelesslink_interface_b.html +++ /dev/null @@ -1,48 +0,0 @@ -{% load helpers %} -{% load i18n %} - -
-

{% trans "Interface" %} B

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{% trans "Device" %}{{ object.interface_b.device|linkify }}
{% trans "Interface" %}{{ object.interface_b|linkify }}
{% trans "Type" %}{{ object.interface_b.get_type_display }}
{% trans "Role" %}{{ object.interface_b.get_rf_role_display|placeholder }}
{% trans "Channel" %}{{ object.interface_b.get_rf_channel_display|placeholder }}
{% trans "Channel Frequency" %} - {% if object.interface_b.rf_channel_frequency %} - {{ object.interface_b.rf_channel_frequency|floatformat:"-2" }} {% trans "MHz" context "Abbreviation for megahertz" %} - {% else %} - {{ ''|placeholder }} - {% endif %} -
{% trans "Channel Width" %} - {% if object.interface_b.rf_channel_width %} - {{ object.interface_b.rf_channel_width|floatformat:"-3" }} {% trans "MHz" context "Abbreviation for megahertz" %} - {% else %} - {{ ''|placeholder }} - {% endif %} -
-
diff --git a/netbox/wireless/ui/panels.py b/netbox/wireless/ui/panels.py index a0522853c..a09ab292e 100644 --- a/netbox/wireless/ui/panels.py +++ b/netbox/wireless/ui/panels.py @@ -25,6 +25,22 @@ class WirelessLANAuthenticationPanel(panels.ObjectAttributesPanel): auth_psk = attrs.TemplatedAttr('auth_psk', label=_('PSK'), template_name='wireless/attrs/auth_psk.html') +class WirelessLinkInterfacePanel(panels.ObjectPanel): + template_name = 'wireless/panels/wirelesslink_interface.html' + + def __init__(self, accessor, title, **kwargs): + super().__init__(**kwargs) + self.accessor = accessor + self.title = title + + def get_context(self, context): + obj = context['object'] + return { + **super().get_context(context), + 'interface': getattr(obj, self.accessor), + } + + class WirelessLinkPropertiesPanel(panels.ObjectAttributesPanel): title = _('Link Properties') diff --git a/netbox/wireless/views.py b/netbox/wireless/views.py index 4bd79a329..3a407d7ec 100644 --- a/netbox/wireless/views.py +++ b/netbox/wireless/views.py @@ -9,7 +9,6 @@ from netbox.ui.panels import ( ObjectsTablePanel, PluginContentPanel, RelatedObjectsPanel, - TemplatePanel, ) from netbox.views import generic from utilities.query import count_related @@ -223,14 +222,14 @@ class WirelessLinkView(generic.ObjectView): layout = layout.Layout( Row( Column( - TemplatePanel('wireless/panels/wirelesslink_interface_a.html'), + panels.WirelessLinkInterfacePanel('interface_a', title=_('Interface A')), panels.WirelessLinkPropertiesPanel(), TagsPanel(), CommentsPanel(), PluginContentPanel('left_page'), ), Column( - TemplatePanel('wireless/panels/wirelesslink_interface_b.html'), + panels.WirelessLinkInterfacePanel('interface_b', title=_('Interface B')), panels.WirelessLANAuthenticationPanel(), CustomFieldsPanel(), PluginContentPanel('right_page'),