Always include actions as a default column

This commit is contained in:
jeremystretch 2022-01-07 10:36:58 -05:00
parent 00a8fd654e
commit 6d48ce4a25
13 changed files with 52 additions and 82 deletions

View File

@ -2,7 +2,7 @@ import django_tables2 as tables
from django_tables2.utils import Accessor from django_tables2.utils import Accessor
from tenancy.tables import TenantColumn from tenancy.tables import TenantColumn
from utilities.tables import ActionsColumn, BaseTable, ChoiceFieldColumn, MarkdownColumn, TagColumn, ToggleColumn from utilities.tables import BaseTable, ChoiceFieldColumn, MarkdownColumn, TagColumn, ToggleColumn
from .models import * from .models import *
@ -88,12 +88,11 @@ class CircuitTypeTable(BaseTable):
circuit_count = tables.Column( circuit_count = tables.Column(
verbose_name='Circuits' verbose_name='Circuits'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = CircuitType model = CircuitType
fields = ('pk', 'id', 'name', 'circuit_count', 'description', 'slug', 'tags', 'actions') fields = ('pk', 'id', 'name', 'circuit_count', 'description', 'slug', 'tags', 'actions')
default_columns = ('pk', 'name', 'circuit_count', 'description', 'slug', 'actions') default_columns = ('pk', 'name', 'circuit_count', 'description', 'slug')
# #

View File

@ -94,7 +94,6 @@ class DeviceRoleTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:devicerole_list' url_name='dcim:devicerole_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = DeviceRole model = DeviceRole
@ -102,7 +101,7 @@ class DeviceRoleTable(BaseTable):
'pk', 'id', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'slug', 'tags', 'pk', 'id', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'slug', 'tags',
'actions', 'actions',
) )
default_columns = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'actions') default_columns = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description')
# #
@ -127,7 +126,6 @@ class PlatformTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:platform_list' url_name='dcim:platform_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Platform model = Platform
@ -136,7 +134,7 @@ class PlatformTable(BaseTable):
'description', 'tags', 'actions', 'description', 'tags', 'actions',
) )
default_columns = ( default_columns = (
'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'napalm_driver', 'description', 'actions', 'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'napalm_driver', 'description',
) )
@ -336,7 +334,7 @@ class DeviceConsolePortTable(ConsolePortTable):
'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'speed', 'description', 'mark_connected', 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'speed', 'description', 'mark_connected',
'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions' 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions'
) )
default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions') default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection')
row_attrs = { row_attrs = {
'class': get_cabletermination_row_class 'class': get_cabletermination_row_class
} }
@ -381,7 +379,7 @@ class DeviceConsoleServerPortTable(ConsoleServerPortTable):
'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'speed', 'description', 'mark_connected', 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'speed', 'description', 'mark_connected',
'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
) )
default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions') default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection')
row_attrs = { row_attrs = {
'class': get_cabletermination_row_class 'class': get_cabletermination_row_class
} }
@ -428,7 +426,6 @@ class DevicePowerPortTable(PowerPortTable):
) )
default_columns = ( default_columns = (
'pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'cable', 'connection', 'pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'cable', 'connection',
'actions',
) )
row_attrs = { row_attrs = {
'class': get_cabletermination_row_class 'class': get_cabletermination_row_class
@ -477,7 +474,7 @@ class DevicePowerOutletTable(PowerOutletTable):
'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
) )
default_columns = ( default_columns = (
'pk', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'cable', 'connection', 'actions', 'pk', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'cable', 'connection',
) )
row_attrs = { row_attrs = {
'class': get_cabletermination_row_class 'class': get_cabletermination_row_class
@ -572,7 +569,7 @@ class DeviceInterfaceTable(InterfaceTable):
order_by = ('name',) order_by = ('name',)
default_columns = ( default_columns = (
'pk', 'name', 'label', 'enabled', 'type', 'parent', 'lag', 'mtu', 'mode', 'description', 'ip_addresses', 'pk', 'name', 'label', 'enabled', 'type', 'parent', 'lag', 'mtu', 'mode', 'description', 'ip_addresses',
'cable', 'connection', 'actions', 'cable', 'connection',
) )
row_attrs = { row_attrs = {
'class': get_interface_row_class, 'class': get_interface_row_class,
@ -631,7 +628,6 @@ class DeviceFrontPortTable(FrontPortTable):
) )
default_columns = ( default_columns = (
'pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'cable', 'link_peer', 'pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'cable', 'link_peer',
'actions',
) )
row_attrs = { row_attrs = {
'class': get_cabletermination_row_class 'class': get_cabletermination_row_class
@ -679,7 +675,7 @@ class DeviceRearPortTable(RearPortTable):
'cable', 'cable_color', 'link_peer', 'tags', 'actions', 'cable', 'cable_color', 'link_peer', 'tags', 'actions',
) )
default_columns = ( default_columns = (
'pk', 'name', 'label', 'type', 'positions', 'description', 'cable', 'link_peer', 'actions', 'pk', 'name', 'label', 'type', 'positions', 'description', 'cable', 'link_peer',
) )
row_attrs = { row_attrs = {
'class': get_cabletermination_row_class 'class': get_cabletermination_row_class
@ -728,9 +724,7 @@ class DeviceDeviceBayTable(DeviceBayTable):
fields = ( fields = (
'pk', 'id', 'name', 'label', 'status', 'installed_device', 'description', 'tags', 'actions', 'pk', 'id', 'name', 'label', 'status', 'installed_device', 'description', 'tags', 'actions',
) )
default_columns = ( default_columns = ('pk', 'name', 'label', 'status', 'installed_device', 'description')
'pk', 'name', 'label', 'status', 'installed_device', 'description', 'actions',
)
class ModuleBayTable(DeviceComponentTable): class ModuleBayTable(DeviceComponentTable):
@ -764,7 +758,7 @@ class DeviceModuleBayTable(ModuleBayTable):
class Meta(DeviceComponentTable.Meta): class Meta(DeviceComponentTable.Meta):
model = ModuleBay model = ModuleBay
fields = ('pk', 'id', 'name', 'label', 'description', 'installed_module', 'tags', 'actions') fields = ('pk', 'id', 'name', 'label', 'description', 'installed_module', 'tags', 'actions')
default_columns = ('pk', 'name', 'label', 'description', 'installed_module', 'actions') default_columns = ('pk', 'name', 'label', 'description', 'installed_module')
class InventoryItemTable(DeviceComponentTable): class InventoryItemTable(DeviceComponentTable):
@ -821,7 +815,7 @@ class DeviceInventoryItemTable(InventoryItemTable):
'description', 'discovered', 'tags', 'actions', 'description', 'discovered', 'tags', 'actions',
) )
default_columns = ( default_columns = (
'pk', 'name', 'label', 'role', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'component', 'actions', 'pk', 'name', 'label', 'role', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'component',
) )
@ -839,14 +833,13 @@ class InventoryItemRoleTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:inventoryitemrole_list' url_name='dcim:inventoryitemrole_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = InventoryItemRole model = InventoryItemRole
fields = ( fields = (
'pk', 'id', 'name', 'inventoryitem_count', 'color', 'description', 'slug', 'tags', 'actions', 'pk', 'id', 'name', 'inventoryitem_count', 'color', 'description', 'slug', 'tags', 'actions',
) )
default_columns = ('pk', 'name', 'inventoryitem_count', 'color', 'description', 'actions') default_columns = ('pk', 'name', 'inventoryitem_count', 'color', 'description')
# #

View File

@ -49,7 +49,6 @@ class ManufacturerTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:manufacturer_list' url_name='dcim:manufacturer_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Manufacturer model = Manufacturer
@ -58,7 +57,7 @@ class ManufacturerTable(BaseTable):
'actions', 'actions',
) )
default_columns = ( default_columns = (
'pk', 'name', 'devicetype_count', 'inventoryitem_count', 'platform_count', 'description', 'slug', 'actions', 'pk', 'name', 'devicetype_count', 'inventoryitem_count', 'platform_count', 'description', 'slug',
) )

View File

@ -4,8 +4,8 @@ from django_tables2.utils import Accessor
from dcim.models import Rack, RackReservation, RackRole from dcim.models import Rack, RackReservation, RackRole
from tenancy.tables import TenantColumn from tenancy.tables import TenantColumn
from utilities.tables import ( from utilities.tables import (
ActionsColumn, BaseTable, ChoiceFieldColumn, ColorColumn, ColoredLabelColumn, LinkedCountColumn, MarkdownColumn, BaseTable, ChoiceFieldColumn, ColorColumn, ColoredLabelColumn, LinkedCountColumn, MarkdownColumn, TagColumn,
TagColumn, ToggleColumn, UtilizationColumn, ToggleColumn, UtilizationColumn,
) )
__all__ = ( __all__ = (
@ -27,12 +27,11 @@ class RackRoleTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:rackrole_list' url_name='dcim:rackrole_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = RackRole model = RackRole
fields = ('pk', 'id', 'name', 'rack_count', 'color', 'description', 'slug', 'tags', 'actions') fields = ('pk', 'id', 'name', 'rack_count', 'color', 'description', 'slug', 'tags', 'actions')
default_columns = ('pk', 'name', 'rack_count', 'color', 'description', 'actions') default_columns = ('pk', 'name', 'rack_count', 'color', 'description')
# #
@ -121,7 +120,6 @@ class RackReservationTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:rackreservation_list' url_name='dcim:rackreservation_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = RackReservation model = RackReservation
@ -129,6 +127,4 @@ class RackReservationTable(BaseTable):
'pk', 'id', 'reservation', 'site', 'rack', 'unit_list', 'user', 'created', 'tenant', 'description', 'tags', 'pk', 'id', 'reservation', 'site', 'rack', 'unit_list', 'user', 'created', 'tenant', 'description', 'tags',
'actions', 'actions',
) )
default_columns = ( default_columns = ('pk', 'reservation', 'site', 'rack', 'unit_list', 'user', 'description')
'pk', 'reservation', 'site', 'rack', 'unit_list', 'user', 'description', 'actions',
)

View File

@ -3,8 +3,7 @@ import django_tables2 as tables
from dcim.models import Location, Region, Site, SiteGroup from dcim.models import Location, Region, Site, SiteGroup
from tenancy.tables import TenantColumn from tenancy.tables import TenantColumn
from utilities.tables import ( from utilities.tables import (
ActionsColumn, BaseTable, ButtonsColumn, ChoiceFieldColumn, LinkedCountColumn, MarkdownColumn, MPTTColumn, BaseTable, ButtonsColumn, ChoiceFieldColumn, LinkedCountColumn, MarkdownColumn, MPTTColumn, TagColumn, ToggleColumn,
TagColumn, ToggleColumn,
) )
from .template_code import LOCATION_ELEVATIONS from .template_code import LOCATION_ELEVATIONS
@ -33,12 +32,11 @@ class RegionTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:region_list' url_name='dcim:region_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Region model = Region
fields = ('pk', 'id', 'name', 'slug', 'site_count', 'description', 'tags', 'actions') fields = ('pk', 'id', 'name', 'slug', 'site_count', 'description', 'tags', 'actions')
default_columns = ('pk', 'name', 'site_count', 'description', 'actions') default_columns = ('pk', 'name', 'site_count', 'description')
# #
@ -58,12 +56,11 @@ class SiteGroupTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='dcim:sitegroup_list' url_name='dcim:sitegroup_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = SiteGroup model = SiteGroup
fields = ('pk', 'id', 'name', 'slug', 'site_count', 'description', 'tags', 'actions') fields = ('pk', 'id', 'name', 'slug', 'site_count', 'description', 'tags', 'actions')
default_columns = ('pk', 'name', 'site_count', 'description', 'actions') default_columns = ('pk', 'name', 'site_count', 'description')
# #
@ -99,6 +96,7 @@ class SiteTable(BaseTable):
fields = ( fields = (
'pk', 'id', 'name', 'slug', 'status', 'facility', 'region', 'group', 'tenant', 'asn_count', 'time_zone', 'pk', 'id', 'name', 'slug', 'status', 'facility', 'region', 'group', 'tenant', 'asn_count', 'time_zone',
'description', 'physical_address', 'shipping_address', 'latitude', 'longitude', 'comments', 'tags', 'description', 'physical_address', 'shipping_address', 'latitude', 'longitude', 'comments', 'tags',
'actions',
) )
default_columns = ('pk', 'name', 'status', 'facility', 'region', 'group', 'tenant', 'description') default_columns = ('pk', 'name', 'status', 'facility', 'region', 'group', 'tenant', 'description')
@ -140,4 +138,4 @@ class LocationTable(BaseTable):
'pk', 'id', 'name', 'site', 'tenant', 'rack_count', 'device_count', 'description', 'slug', 'tags', 'pk', 'id', 'name', 'site', 'tenant', 'rack_count', 'device_count', 'description', 'slug', 'tags',
'actions', 'actions',
) )
default_columns = ('pk', 'name', 'site', 'tenant', 'rack_count', 'device_count', 'description', 'actions') default_columns = ('pk', 'name', 'site', 'tenant', 'rack_count', 'device_count', 'description')

View File

@ -152,12 +152,11 @@ class TagTable(BaseTable):
linkify=True linkify=True
) )
color = ColorColumn() color = ColorColumn()
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Tag model = Tag
fields = ('pk', 'id', 'name', 'items', 'slug', 'color', 'description', 'actions') fields = ('pk', 'id', 'name', 'items', 'slug', 'color', 'description', 'actions')
default_columns = ('pk', 'name', 'items', 'slug', 'color', 'description', 'actions') default_columns = ('pk', 'name', 'items', 'slug', 'color', 'description')
class TaggedItemTable(BaseTable): class TaggedItemTable(BaseTable):
@ -215,6 +214,7 @@ class ObjectChangeTable(BaseTable):
template_code=OBJECTCHANGE_REQUEST_ID, template_code=OBJECTCHANGE_REQUEST_ID,
verbose_name='Request ID' verbose_name='Request ID'
) )
actions = ActionsColumn(actions=())
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ObjectChange model = ObjectChange
@ -233,7 +233,6 @@ class ObjectJournalTable(BaseTable):
comments = tables.TemplateColumn( comments = tables.TemplateColumn(
template_code='{% load helpers %}{{ value|render_markdown|truncatewords_html:50 }}' template_code='{% load helpers %}{{ value|render_markdown|truncatewords_html:50 }}'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = JournalEntry model = JournalEntry
@ -259,6 +258,5 @@ class JournalEntryTable(ObjectJournalTable):
'comments', 'actions' 'comments', 'actions'
) )
default_columns = ( default_columns = (
'pk', 'created', 'created_by', 'assigned_object_type', 'assigned_object', 'kind', 'pk', 'created', 'created_by', 'assigned_object_type', 'assigned_object', 'kind', 'comments'
'comments', 'actions'
) )

View File

@ -2,12 +2,11 @@ import django_tables2 as tables
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django_tables2.utils import Accessor from django_tables2.utils import Accessor
from ipam.models import *
from tenancy.tables import TenantColumn from tenancy.tables import TenantColumn
from utilities.tables import ( from utilities.tables import (
ActionsColumn, BaseTable, BooleanColumn, ChoiceFieldColumn, LinkedCountColumn, TagColumn, ToggleColumn, BaseTable, BooleanColumn, ChoiceFieldColumn, LinkedCountColumn, TagColumn, ToggleColumn, UtilizationColumn,
UtilizationColumn,
) )
from ipam.models import *
__all__ = ( __all__ = (
'AggregateTable', 'AggregateTable',
@ -89,12 +88,11 @@ class RIRTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='ipam:rir_list' url_name='ipam:rir_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = RIR model = RIR
fields = ('pk', 'id', 'name', 'slug', 'is_private', 'aggregate_count', 'description', 'tags', 'actions') fields = ('pk', 'id', 'name', 'slug', 'is_private', 'aggregate_count', 'description', 'tags', 'actions')
default_columns = ('pk', 'name', 'is_private', 'aggregate_count', 'description', 'actions') default_columns = ('pk', 'name', 'is_private', 'aggregate_count', 'description')
# #
@ -111,12 +109,11 @@ class ASNTable(BaseTable):
url_params={'asn_id': 'pk'}, url_params={'asn_id': 'pk'},
verbose_name='Sites' verbose_name='Sites'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ASN model = ASN
fields = ('pk', 'asn', 'rir', 'site_count', 'tenant', 'description', 'actions') fields = ('pk', 'asn', 'rir', 'site_count', 'tenant', 'description', 'actions')
default_columns = ('pk', 'asn', 'rir', 'site_count', 'sites', 'tenant', 'actions') default_columns = ('pk', 'asn', 'rir', 'site_count', 'sites', 'tenant')
# #
@ -173,12 +170,11 @@ class RoleTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='ipam:role_list' url_name='ipam:role_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Role model = Role
fields = ('pk', 'id', 'name', 'slug', 'prefix_count', 'vlan_count', 'description', 'weight', 'tags', 'actions') fields = ('pk', 'id', 'name', 'slug', 'prefix_count', 'vlan_count', 'description', 'weight', 'tags', 'actions')
default_columns = ('pk', 'name', 'prefix_count', 'vlan_count', 'description', 'actions') default_columns = ('pk', 'name', 'prefix_count', 'vlan_count', 'description')
# #
@ -405,7 +401,6 @@ class AssignedIPAddressesTable(BaseTable):
) )
status = ChoiceFieldColumn() status = ChoiceFieldColumn()
tenant = TenantColumn() tenant = TenantColumn()
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = IPAddress model = IPAddress

View File

@ -88,7 +88,7 @@ class VLANGroupTable(BaseTable):
'pk', 'id', 'name', 'scope_type', 'scope', 'min_vid', 'max_vid', 'vlan_count', 'slug', 'description', 'pk', 'id', 'name', 'scope_type', 'scope', 'min_vid', 'max_vid', 'vlan_count', 'slug', 'description',
'tags', 'actions', 'tags', 'actions',
) )
default_columns = ('pk', 'name', 'scope_type', 'scope', 'vlan_count', 'description', 'actions') default_columns = ('pk', 'name', 'scope_type', 'scope', 'vlan_count', 'description')
# #

View File

@ -59,12 +59,11 @@ class TenantGroupTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='tenancy:tenantgroup_list' url_name='tenancy:tenantgroup_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = TenantGroup model = TenantGroup
fields = ('pk', 'id', 'name', 'tenant_count', 'description', 'slug', 'tags', 'actions') fields = ('pk', 'id', 'name', 'tenant_count', 'description', 'slug', 'tags', 'actions')
default_columns = ('pk', 'name', 'tenant_count', 'description', 'actions') default_columns = ('pk', 'name', 'tenant_count', 'description')
class TenantTable(BaseTable): class TenantTable(BaseTable):
@ -103,12 +102,11 @@ class ContactGroupTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='tenancy:contactgroup_list' url_name='tenancy:contactgroup_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ContactGroup model = ContactGroup
fields = ('pk', 'name', 'contact_count', 'description', 'slug', 'tags', 'actions') fields = ('pk', 'name', 'contact_count', 'description', 'slug', 'tags', 'actions')
default_columns = ('pk', 'name', 'contact_count', 'description', 'actions') default_columns = ('pk', 'name', 'contact_count', 'description')
class ContactRoleTable(BaseTable): class ContactRoleTable(BaseTable):
@ -116,12 +114,11 @@ class ContactRoleTable(BaseTable):
name = tables.Column( name = tables.Column(
linkify=True linkify=True
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ContactRole model = ContactRole
fields = ('pk', 'name', 'description', 'slug', 'actions') fields = ('pk', 'name', 'description', 'slug', 'actions')
default_columns = ('pk', 'name', 'description', 'actions') default_columns = ('pk', 'name', 'description')
class ContactTable(BaseTable): class ContactTable(BaseTable):
@ -171,4 +168,4 @@ class ContactAssignmentTable(BaseTable):
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ContactAssignment model = ContactAssignment
fields = ('pk', 'content_type', 'object', 'contact', 'role', 'priority', 'actions') fields = ('pk', 'content_type', 'object', 'contact', 'role', 'priority', 'actions')
default_columns = ('pk', 'content_type', 'object', 'contact', 'role', 'priority', 'actions') default_columns = ('pk', 'content_type', 'object', 'contact', 'role', 'priority')

View File

@ -114,7 +114,8 @@ class ActionsColumn(tables.Column):
return '' return ''
def render(self, record, table, **kwargs): def render(self, record, table, **kwargs):
if not self.actions: # Skip dummy records (e.g. available VLANs) or those with no actions
if not hasattr(record, 'pk') or not self.actions:
return '' return ''
model = table.Meta.model model = table.Meta.model

View File

@ -24,6 +24,7 @@ class BaseTable(tables.Table):
linkify=True, linkify=True,
verbose_name='ID' verbose_name='ID'
) )
actions = columns.ActionsColumn()
class Meta: class Meta:
attrs = { attrs = {
@ -50,9 +51,8 @@ class BaseTable(tables.Table):
if self.empty_text is None: if self.empty_text is None:
self.empty_text = f"No {self._meta.model._meta.verbose_name_plural} found" self.empty_text = f"No {self._meta.model._meta.verbose_name_plural} found"
# Hide non-default columns # Hide non-default columns (except for actions)
default_columns = getattr(self.Meta, 'default_columns', list()) default_columns = [*getattr(self.Meta, 'default_columns', self.Meta.fields), 'actions']
if default_columns:
for column in self.columns: for column in self.columns:
if column.name not in default_columns: if column.name not in default_columns:
self.columns.hide(column.name) self.columns.hide(column.name)

View File

@ -1,9 +1,10 @@
import django_tables2 as tables import django_tables2 as tables
from dcim.tables.devices import BaseInterfaceTable from dcim.tables.devices import BaseInterfaceTable
from tenancy.tables import TenantColumn from tenancy.tables import TenantColumn
from utilities.tables import ( from utilities.tables import (
ActionsColumn, BaseTable, ButtonsColumn, ChoiceFieldColumn, ColoredLabelColumn, LinkedCountColumn, MarkdownColumn, BaseTable, ButtonsColumn, ChoiceFieldColumn, ColoredLabelColumn, LinkedCountColumn, MarkdownColumn, TagColumn,
TagColumn, ToggleColumn, ToggleColumn,
) )
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
@ -40,12 +41,11 @@ class ClusterTypeTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='virtualization:clustertype_list' url_name='virtualization:clustertype_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ClusterType model = ClusterType
fields = ('pk', 'id', 'name', 'slug', 'cluster_count', 'description', 'tags', 'actions') fields = ('pk', 'id', 'name', 'slug', 'cluster_count', 'description', 'tags', 'actions')
default_columns = ('pk', 'name', 'cluster_count', 'description', 'actions') default_columns = ('pk', 'name', 'cluster_count', 'description')
# #
@ -63,12 +63,11 @@ class ClusterGroupTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='virtualization:clustergroup_list' url_name='virtualization:clustergroup_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = ClusterGroup model = ClusterGroup
fields = ('pk', 'id', 'name', 'slug', 'cluster_count', 'description', 'tags', 'actions') fields = ('pk', 'id', 'name', 'slug', 'cluster_count', 'description', 'tags', 'actions')
default_columns = ('pk', 'name', 'cluster_count', 'description', 'actions') default_columns = ('pk', 'name', 'cluster_count', 'description')
# #
@ -196,9 +195,7 @@ class VirtualMachineVMInterfaceTable(VMInterfaceTable):
'pk', 'id', 'name', 'enabled', 'parent', 'bridge', 'mac_address', 'mtu', 'mode', 'description', 'tags', 'pk', 'id', 'name', 'enabled', 'parent', 'bridge', 'mac_address', 'mtu', 'mode', 'description', 'tags',
'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans', 'actions', 'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans', 'actions',
) )
default_columns = ( default_columns = ('pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'ip_addresses')
'pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'ip_addresses', 'actions',
)
row_attrs = { row_attrs = {
'data-name': lambda record: record.name, 'data-name': lambda record: record.name,
} }

View File

@ -1,9 +1,7 @@
import django_tables2 as tables import django_tables2 as tables
from dcim.models import Interface from dcim.models import Interface
from utilities.tables import ( from utilities.tables import BaseTable, ChoiceFieldColumn, LinkedCountColumn, MPTTColumn, TagColumn, ToggleColumn
ActionsColumn, BaseTable, ChoiceFieldColumn, LinkedCountColumn, MPTTColumn, TagColumn, ToggleColumn,
)
from .models import * from .models import *
__all__ = ( __all__ = (
@ -26,12 +24,11 @@ class WirelessLANGroupTable(BaseTable):
tags = TagColumn( tags = TagColumn(
url_name='wireless:wirelesslangroup_list' url_name='wireless:wirelesslangroup_list'
) )
actions = ActionsColumn()
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = WirelessLANGroup model = WirelessLANGroup
fields = ('pk', 'name', 'wirelesslan_count', 'description', 'slug', 'tags', 'actions') fields = ('pk', 'name', 'wirelesslan_count', 'description', 'slug', 'tags', 'actions')
default_columns = ('pk', 'name', 'wirelesslan_count', 'description', 'actions') default_columns = ('pk', 'name', 'wirelesslan_count', 'description')
class WirelessLANTable(BaseTable): class WirelessLANTable(BaseTable):