diff --git a/netbox/extras/tables.py b/netbox/extras/tables.py index e30bc6907..071caa354 100644 --- a/netbox/extras/tables.py +++ b/netbox/extras/tables.py @@ -214,7 +214,7 @@ class ObjectChangeTable(BaseTable): template_code=OBJECTCHANGE_REQUEST_ID, verbose_name='Request ID' ) - actions = ActionsColumn(actions=()) + actions = ActionsColumn(sequence=()) class Meta(BaseTable.Meta): model = ObjectChange diff --git a/netbox/ipam/tables/fhrp.py b/netbox/ipam/tables/fhrp.py index ce472cb1a..a691b945b 100644 --- a/netbox/ipam/tables/fhrp.py +++ b/netbox/ipam/tables/fhrp.py @@ -59,7 +59,7 @@ class FHRPGroupAssignmentTable(BaseTable): linkify=True ) actions = ActionsColumn( - actions=('edit', 'delete') + sequence=('edit', 'delete') ) class Meta(BaseTable.Meta): diff --git a/netbox/ipam/tables/vlans.py b/netbox/ipam/tables/vlans.py index 1470b3d1a..1379ad105 100644 --- a/netbox/ipam/tables/vlans.py +++ b/netbox/ipam/tables/vlans.py @@ -154,7 +154,7 @@ class VLANDevicesTable(VLANMembersTable): linkify=True ) actions = ActionsColumn( - actions=('edit',) + sequence=('edit',) ) class Meta(BaseTable.Meta): @@ -168,7 +168,7 @@ class VLANVirtualMachinesTable(VLANMembersTable): linkify=True ) actions = ActionsColumn( - actions=('edit',) + sequence=('edit',) ) class Meta(BaseTable.Meta): diff --git a/netbox/tenancy/tables.py b/netbox/tenancy/tables.py index 72878ef29..f15e67eab 100644 --- a/netbox/tenancy/tables.py +++ b/netbox/tenancy/tables.py @@ -162,7 +162,7 @@ class ContactAssignmentTable(BaseTable): linkify=True ) actions = ActionsColumn( - actions=('edit', 'delete') + sequence=('edit', 'delete') ) class Meta(BaseTable.Meta): diff --git a/netbox/utilities/tables/columns.py b/netbox/utilities/tables/columns.py index df9db357f..e601bd0cc 100644 --- a/netbox/utilities/tables/columns.py +++ b/netbox/utilities/tables/columns.py @@ -102,18 +102,22 @@ class ActionsItem: class ActionsColumn(tables.Column): attrs = {'td': {'class': 'text-end noprint'}} empty_values = () - _actions = { + actions = { 'edit': ActionsItem('Edit', 'pencil', 'change'), 'delete': ActionsItem('Delete', 'trash-can-outline', 'delete'), 'changelog': ActionsItem('Changelog', 'history'), } - def __init__(self, *args, actions=('edit', 'delete', 'changelog'), **kwargs): + def __init__(self, *args, extra_actions=None, sequence=('edit', 'delete', 'changelog'), **kwargs): super().__init__(*args, **kwargs) + # Add/update any extra actions passed + if extra_actions: + self.actions.update(extra_actions) + # Determine which actions to enable self.actions = { - name: self._actions[name] for name in actions + name: self.actions[name] for name in sequence } def header(self):