mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-09 07:50:06 +01:00
Prevent duplicate action registration in register_model_actions()
This commit is contained in:
@@ -53,7 +53,8 @@ def register_model_actions(model: type[Model], actions: list[ModelAction | str])
|
||||
for action in actions:
|
||||
if isinstance(action, str):
|
||||
action = ModelAction(name=action)
|
||||
registry['model_actions'][label].append(action)
|
||||
if action not in registry['model_actions'][label]:
|
||||
registry['model_actions'][label].append(action)
|
||||
|
||||
|
||||
def get_permission_for_model(model, action):
|
||||
|
||||
@@ -80,6 +80,12 @@ class RegisterModelActionsTest(TestCase):
|
||||
self.assertEqual(actions[0].name, 'first')
|
||||
self.assertEqual(actions[1].name, 'second')
|
||||
|
||||
def test_duplicate_registration_ignored(self):
|
||||
register_model_actions(Site, [ModelAction('sync')])
|
||||
register_model_actions(Site, [ModelAction('sync', help_text='Different help')])
|
||||
actions = registry['model_actions']['dcim.site']
|
||||
self.assertEqual(len(actions), 1)
|
||||
|
||||
|
||||
class ObjectPermissionFormTest(TestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user