Closes #8469: Move BaseTable, columns to netbox core app

This commit is contained in:
jeremystretch
2022-01-27 15:00:10 -05:00
parent 083d1acb81
commit 4a1b4e0485
33 changed files with 321 additions and 349 deletions

View File

@@ -1,7 +1,7 @@
import django_tables2 as tables
from utilities.tables import ActionsColumn, BaseTable, MarkdownColumn, TagColumn, ToggleColumn
from ipam.models import *
from netbox.tables import BaseTable, columns
__all__ = (
'FHRPGroupTable',
@@ -17,11 +17,11 @@ IPADDRESSES = """
class FHRPGroupTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
group_id = tables.Column(
linkify=True
)
comments = MarkdownColumn()
comments = columns.MarkdownColumn()
ip_addresses = tables.TemplateColumn(
template_code=IPADDRESSES,
orderable=False,
@@ -30,7 +30,7 @@ class FHRPGroupTable(BaseTable):
interface_count = tables.Column(
verbose_name='Interfaces'
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:fhrpgroup_list'
)
@@ -44,7 +44,7 @@ class FHRPGroupTable(BaseTable):
class FHRPGroupAssignmentTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
interface_parent = tables.Column(
accessor=tables.A('interface.parent_object'),
linkify=True,
@@ -58,7 +58,7 @@ class FHRPGroupAssignmentTable(BaseTable):
group = tables.Column(
linkify=True
)
actions = ActionsColumn(
actions = columns.ActionsColumn(
sequence=('edit', 'delete')
)

View File

@@ -3,10 +3,8 @@ from django.utils.safestring import mark_safe
from django_tables2.utils import Accessor
from ipam.models import *
from netbox.tables import BaseTable, columns
from tenancy.tables import TenantColumn
from utilities.tables import (
BaseTable, BooleanColumn, ChoiceFieldColumn, LinkedCountColumn, TagColumn, ToggleColumn, UtilizationColumn,
)
__all__ = (
'AggregateTable',
@@ -73,19 +71,19 @@ VRF_LINK = """
#
class RIRTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(
linkify=True
)
is_private = BooleanColumn(
is_private = columns.BooleanColumn(
verbose_name='Private'
)
aggregate_count = LinkedCountColumn(
aggregate_count = columns.LinkedCountColumn(
viewname='ipam:aggregate_list',
url_params={'rir_id': 'pk'},
verbose_name='Aggregates'
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:rir_list'
)
@@ -103,13 +101,13 @@ class RIRTable(BaseTable):
#
class ASNTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
asn = tables.Column(
accessor=tables.A('asn_asdot'),
linkify=True
)
site_count = LinkedCountColumn(
site_count = columns.LinkedCountColumn(
viewname='dcim:site_list',
url_params={'asn_id': 'pk'},
verbose_name='Sites'
@@ -126,7 +124,7 @@ class ASNTable(BaseTable):
#
class AggregateTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
prefix = tables.Column(
linkify=True,
verbose_name='Aggregate'
@@ -139,11 +137,11 @@ class AggregateTable(BaseTable):
child_count = tables.Column(
verbose_name='Prefixes'
)
utilization = UtilizationColumn(
utilization = columns.UtilizationColumn(
accessor='get_utilization',
orderable=False
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:aggregate_list'
)
@@ -161,21 +159,21 @@ class AggregateTable(BaseTable):
#
class RoleTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(
linkify=True
)
prefix_count = LinkedCountColumn(
prefix_count = columns.LinkedCountColumn(
viewname='ipam:prefix_list',
url_params={'role_id': 'pk'},
verbose_name='Prefixes'
)
vlan_count = LinkedCountColumn(
vlan_count = columns.LinkedCountColumn(
viewname='ipam:vlan_list',
url_params={'role_id': 'pk'},
verbose_name='VLANs'
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:role_list'
)
@@ -192,7 +190,7 @@ class RoleTable(BaseTable):
# Prefixes
#
class PrefixUtilizationColumn(UtilizationColumn):
class PrefixUtilizationColumn(columns.UtilizationColumn):
"""
Extend UtilizationColumn to allow disabling the warning & danger thresholds for prefixes
marked as fully utilized.
@@ -208,7 +206,7 @@ class PrefixUtilizationColumn(UtilizationColumn):
class PrefixTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
prefix = tables.TemplateColumn(
template_code=PREFIX_LINK,
attrs={'td': {'class': 'text-nowrap'}}
@@ -222,7 +220,7 @@ class PrefixTable(BaseTable):
accessor=Accessor('_depth'),
verbose_name='Depth'
)
children = LinkedCountColumn(
children = columns.LinkedCountColumn(
accessor=Accessor('_children'),
viewname='ipam:prefix_list',
url_params={
@@ -231,7 +229,7 @@ class PrefixTable(BaseTable):
},
verbose_name='Children'
)
status = ChoiceFieldColumn(
status = columns.ChoiceFieldColumn(
default=AVAILABLE_LABEL
)
vrf = tables.TemplateColumn(
@@ -254,17 +252,17 @@ class PrefixTable(BaseTable):
role = tables.Column(
linkify=True
)
is_pool = BooleanColumn(
is_pool = columns.BooleanColumn(
verbose_name='Pool'
)
mark_utilized = BooleanColumn(
mark_utilized = columns.BooleanColumn(
verbose_name='Marked Utilized'
)
utilization = PrefixUtilizationColumn(
accessor='get_utilization',
orderable=False
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:prefix_list'
)
@@ -286,7 +284,7 @@ class PrefixTable(BaseTable):
# IP ranges
#
class IPRangeTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
start_address = tables.Column(
linkify=True
)
@@ -294,18 +292,18 @@ class IPRangeTable(BaseTable):
template_code=VRF_LINK,
verbose_name='VRF'
)
status = ChoiceFieldColumn(
status = columns.ChoiceFieldColumn(
default=AVAILABLE_LABEL
)
role = tables.Column(
linkify=True
)
tenant = TenantColumn()
utilization = UtilizationColumn(
utilization = columns.UtilizationColumn(
accessor='utilization',
orderable=False
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:iprange_list'
)
@@ -328,7 +326,7 @@ class IPRangeTable(BaseTable):
#
class IPAddressTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
address = tables.TemplateColumn(
template_code=IPADDRESS_LINK,
verbose_name='IP Address'
@@ -337,10 +335,10 @@ class IPAddressTable(BaseTable):
template_code=VRF_LINK,
verbose_name='VRF'
)
status = ChoiceFieldColumn(
status = columns.ChoiceFieldColumn(
default=AVAILABLE_LABEL
)
role = ChoiceFieldColumn()
role = columns.ChoiceFieldColumn()
tenant = TenantColumn()
assigned_object = tables.Column(
linkify=True,
@@ -358,12 +356,12 @@ class IPAddressTable(BaseTable):
orderable=False,
verbose_name='NAT (Inside)'
)
assigned = BooleanColumn(
assigned = columns.BooleanColumn(
accessor='assigned_object_id',
linkify=True,
verbose_name='Assigned'
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:ipaddress_list'
)
@@ -386,7 +384,7 @@ class IPAddressAssignTable(BaseTable):
template_code=IPADDRESS_ASSIGN_LINK,
verbose_name='IP Address'
)
status = ChoiceFieldColumn()
status = columns.ChoiceFieldColumn()
assigned_object = tables.Column(
orderable=False
)
@@ -410,7 +408,7 @@ class AssignedIPAddressesTable(BaseTable):
template_code=VRF_LINK,
verbose_name='VRF'
)
status = ChoiceFieldColumn()
status = columns.ChoiceFieldColumn()
tenant = TenantColumn()
class Meta(BaseTable.Meta):

View File

@@ -1,7 +1,7 @@
import django_tables2 as tables
from utilities.tables import BaseTable, TagColumn, ToggleColumn
from ipam.models import *
from netbox.tables import BaseTable, columns
__all__ = (
'ServiceTable',
@@ -10,14 +10,14 @@ __all__ = (
class ServiceTemplateTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(
linkify=True
)
ports = tables.Column(
accessor=tables.A('port_list')
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:servicetemplate_list'
)
@@ -28,7 +28,7 @@ class ServiceTemplateTable(BaseTable):
class ServiceTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(
linkify=True
)
@@ -39,7 +39,7 @@ class ServiceTable(BaseTable):
ports = tables.Column(
accessor=tables.A('port_list')
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:service_list'
)

View File

@@ -3,13 +3,10 @@ from django.utils.safestring import mark_safe
from django_tables2.utils import Accessor
from dcim.models import Interface
from tenancy.tables import TenantColumn
from utilities.tables import (
ActionsColumn, BaseTable, BooleanColumn, ChoiceFieldColumn, ContentTypeColumn, LinkedCountColumn, TagColumn,
TemplateColumn, ToggleColumn,
)
from virtualization.models import VMInterface
from ipam.models import *
from netbox.tables import BaseTable, columns
from tenancy.tables import TenantColumn
from virtualization.models import VMInterface
__all__ = (
'InterfaceVLANTable',
@@ -62,22 +59,22 @@ VLAN_MEMBER_TAGGED = """
#
class VLANGroupTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(linkify=True)
scope_type = ContentTypeColumn()
scope_type = columns.ContentTypeColumn()
scope = tables.Column(
linkify=True,
orderable=False
)
vlan_count = LinkedCountColumn(
vlan_count = columns.LinkedCountColumn(
viewname='ipam:vlan_list',
url_params={'group_id': 'pk'},
verbose_name='VLANs'
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:vlangroup_list'
)
actions = ActionsColumn(
actions = columns.ActionsColumn(
extra_buttons=VLANGROUP_BUTTONS
)
@@ -95,7 +92,7 @@ class VLANGroupTable(BaseTable):
#
class VLANTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
vid = tables.TemplateColumn(
template_code=VLAN_LINK,
verbose_name='VID'
@@ -110,18 +107,18 @@ class VLANTable(BaseTable):
linkify=True
)
tenant = TenantColumn()
status = ChoiceFieldColumn(
status = columns.ChoiceFieldColumn(
default=AVAILABLE_LABEL
)
role = tables.Column(
linkify=True
)
prefixes = TemplateColumn(
prefixes = columns.TemplateColumn(
template_code=VLAN_PREFIXES,
orderable=False,
verbose_name='Prefixes'
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:vlan_list'
)
@@ -155,7 +152,7 @@ class VLANDevicesTable(VLANMembersTable):
device = tables.Column(
linkify=True
)
actions = ActionsColumn(
actions = columns.ActionsColumn(
sequence=('edit',)
)
@@ -169,7 +166,7 @@ class VLANVirtualMachinesTable(VLANMembersTable):
virtual_machine = tables.Column(
linkify=True
)
actions = ActionsColumn(
actions = columns.ActionsColumn(
sequence=('edit',)
)
@@ -187,7 +184,7 @@ class InterfaceVLANTable(BaseTable):
linkify=True,
verbose_name='ID'
)
tagged = BooleanColumn()
tagged = columns.BooleanColumn()
site = tables.Column(
linkify=True
)
@@ -196,7 +193,7 @@ class InterfaceVLANTable(BaseTable):
verbose_name='Group'
)
tenant = TenantColumn()
status = ChoiceFieldColumn()
status = columns.ChoiceFieldColumn()
role = tables.Column(
linkify=True
)

View File

@@ -1,8 +1,8 @@
import django_tables2 as tables
from tenancy.tables import TenantColumn
from utilities.tables import BaseTable, BooleanColumn, TagColumn, TemplateColumn, ToggleColumn
from ipam.models import *
from netbox.tables import BaseTable, columns
from tenancy.tables import TenantColumn
__all__ = (
'RouteTargetTable',
@@ -21,7 +21,7 @@ VRF_TARGETS = """
#
class VRFTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(
linkify=True
)
@@ -29,18 +29,18 @@ class VRFTable(BaseTable):
verbose_name='RD'
)
tenant = TenantColumn()
enforce_unique = BooleanColumn(
enforce_unique = columns.BooleanColumn(
verbose_name='Unique'
)
import_targets = TemplateColumn(
import_targets = columns.TemplateColumn(
template_code=VRF_TARGETS,
orderable=False
)
export_targets = TemplateColumn(
export_targets = columns.TemplateColumn(
template_code=VRF_TARGETS,
orderable=False
)
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:vrf_list'
)
@@ -58,12 +58,12 @@ class VRFTable(BaseTable):
#
class RouteTargetTable(BaseTable):
pk = ToggleColumn()
pk = columns.ToggleColumn()
name = tables.Column(
linkify=True
)
tenant = TenantColumn()
tags = TagColumn(
tags = columns.TagColumn(
url_name='ipam:vrf_list'
)