Remove redundant InterfaceVLANTranslationTable

This commit is contained in:
Brian Tiemann 2024-10-28 15:04:55 -04:00
parent e0f5fd048b
commit 79fbf64f86
6 changed files with 16 additions and 32 deletions

View File

@ -18,7 +18,7 @@ from jinja2.exceptions import TemplateError
from circuits.models import Circuit, CircuitTermination
from extras.views import ObjectConfigContextView
from ipam.models import ASN, IPAddress, VLANGroup
from ipam.tables import InterfaceVLANTable, InterfaceVLANTranslationTable
from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable
from netbox.constants import DEFAULT_ACTION_PERMISSIONS
from netbox.views import generic
from tenancy.views import ObjectContactsView
@ -2579,8 +2579,7 @@ class InterfaceView(generic.ObjectView):
data=vlans,
orderable=False
)
vlan_translation_table = InterfaceVLANTranslationTable(
interface=instance,
vlan_translation_table = VLANTranslationRuleTable(
data=instance.vlan_translation_policy.rules.all() if instance.vlan_translation_policy else [],
orderable=False
)

View File

@ -18,7 +18,6 @@ __all__ = (
'VLANVirtualMachinesTable',
'VLANTranslationPolicyTable',
'VLANTranslationRuleTable',
'InterfaceVLANTranslationTable',
)
AVAILABLE_LABEL = mark_safe('<span class="badge text-bg-success">Available</span>')
@ -295,26 +294,3 @@ class VLANTranslationRuleTable(NetBoxTable):
'pk', 'id', 'name', 'policy', 'local_vid', 'remote_vid', 'tags', 'created', 'last_updated',
)
default_columns = ('pk', 'id', 'local_vid', 'remote_vid', 'policy')
class InterfaceVLANTranslationTable(NetBoxTable):
policy = tables.Column(
verbose_name=_('Policy'),
linkify=True
)
local_vid = tables.Column(
verbose_name=_('Local VID'),
linkify=True,
)
remote_vid = tables.Column(
verbose_name=_('Remote VID'),
)
class Meta(NetBoxTable.Meta):
model = VLANTranslationRule
fields = ('local_vid', 'remote_vid')
default_columns = ('pk', 'local_vid', 'remote_vid', 'policy')
def __init__(self, interface, *args, **kwargs):
self.interface = interface
super().__init__(*args, **kwargs)

View File

@ -9,6 +9,7 @@ from circuits.models import Provider
from dcim.filtersets import InterfaceFilterSet
from dcim.forms import InterfaceFilterForm
from dcim.models import Interface, Site
from ipam.tables import VLANTranslationRuleTable
from netbox.views import generic
from tenancy.views import ObjectContactsView
from utilities.query import count_related
@ -1002,8 +1003,12 @@ class VLANTranslationPolicyView(GetRelatedModelsMixin, generic.ObjectView):
queryset = VLANTranslationPolicy.objects.all()
def get_extra_context(self, request, instance):
vlan_translation_table = VLANTranslationRuleTable(
data=instance.rules.all(),
orderable=False
)
return {
'related_models': self.get_related_models(request, instance),
'vlan_translation_table': vlan_translation_table,
}

View File

@ -29,6 +29,11 @@
{% plugin_right_page object %}
</div>
</div>
<div class="row mb-3">
<div class="col col-md-12">
{% include 'inc/panel_table.html' with table=vlan_translation_table heading="VLAN Translation Rules" %}
</div>
</div>
<div class="row">
<div class="col col-md-12">
{% plugin_full_width_page object %}

View File

@ -12,7 +12,7 @@
<table class="table table-hover attr-table">
<tr>
<th scope="row">{% trans "Policy" %}</th>
<td>{{ object.policy|placeholder }}</td>
<td>{{ object.policy|linkify }}</td>
</tr>
<tr>
<th scope="row">{% trans "Local VID" %}</th>

View File

@ -16,7 +16,7 @@ from dcim.models import Device
from dcim.tables import DeviceTable
from extras.views import ObjectConfigContextView
from ipam.models import IPAddress
from ipam.tables import InterfaceVLANTable, InterfaceVLANTranslationTable
from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable
from netbox.constants import DEFAULT_ACTION_PERMISSIONS
from netbox.views import generic
from tenancy.views import ObjectContactsView
@ -515,8 +515,7 @@ class VMInterfaceView(generic.ObjectView):
exclude=('virtual_machine',),
orderable=False
)
vlan_translation_table = InterfaceVLANTranslationTable(
interface=instance,
vlan_translation_table = VLANTranslationRuleTable(
data=instance.vlan_translation_policy.rules.all() if instance.vlan_translation_policy else [],
orderable=False
)