1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

14852 delete event-rule when delete script

This commit is contained in:
Arthur
2024-04-29 09:44:02 -07:00
committed by Jeremy Stretch
parent 79b9dc2013
commit 4b21cf604b
2 changed files with 13 additions and 2 deletions

View File

@ -89,8 +89,11 @@ class EventRuleSerializer(NetBoxModelSerializer):
# We need to manually instantiate the serializer for scripts # We need to manually instantiate the serializer for scripts
if instance.action_type == EventRuleActionChoices.SCRIPT: if instance.action_type == EventRuleActionChoices.SCRIPT:
script_name = instance.action_parameters['script_name'] script_name = instance.action_parameters['script_name']
if script_name in instance.action_object.scripts:
script = instance.action_object.scripts[script_name]() script = instance.action_object.scripts[script_name]()
return NestedScriptSerializer(script, context=context).data return NestedScriptSerializer(script, context=context).data
else:
return None
else: else:
serializer = get_serializer_for_model( serializer = get_serializer_for_model(
model=instance.action_object_type.model_class(), model=instance.action_object_type.model_class(),

View File

@ -2,6 +2,7 @@ import inspect
import logging import logging
from functools import cached_property from functools import cached_property
from django.contrib.contenttypes.fields import GenericRelation
from django.db import models from django.db import models
from django.urls import reverse from django.urls import reverse
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -41,6 +42,13 @@ class ScriptModule(PythonModuleMixin, JobsMixin, ManagedFile):
""" """
objects = ScriptModuleManager() objects = ScriptModuleManager()
event_rules = GenericRelation(
to='extras.EventRule',
content_type_field='action_object_type',
object_id_field='action_object_id',
for_concrete_model=False
)
class Meta: class Meta:
proxy = True proxy = True
verbose_name = _('script module') verbose_name = _('script module')