From bc596340c3096b2fe4e1ceaa93f0f06ef89cd30d Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 12 Feb 2024 10:26:24 -0800 Subject: [PATCH] 14438 add generic relation so delete will show event rule --- netbox/extras/api/serializers.py | 5 ++++- netbox/extras/models/scripts.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index bb56103ac..50d32c4cf 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -84,7 +84,10 @@ class EventRuleSerializer(NetBoxModelSerializer): if instance.action_type == EventRuleActionChoices.SCRIPT: script = instance.action_object script_name = script.name - return NestedScriptSerializer(script.python_class(), context=context).data + if script.python_class: + return NestedScriptSerializer(script.python_class(), context=context).data + else: + return NestedScriptSerializer(None, context=context).data else: serializer = get_serializer_for_model( model=instance.action_object_type.model_class(), diff --git a/netbox/extras/models/scripts.py b/netbox/extras/models/scripts.py index f3a4aff6e..540e01103 100644 --- a/netbox/extras/models/scripts.py +++ b/netbox/extras/models/scripts.py @@ -2,6 +2,7 @@ import inspect import logging from functools import cached_property +from django.contrib.contenttypes.fields import GenericRelation from django.db import models from django.db.models import Q from django.urls import reverse @@ -35,6 +36,11 @@ class Script(EventRulesMixin, JobsMixin, models.Model): is_valid = models.BooleanField( default=True ) + events = GenericRelation( + 'extras.EventRule', + content_type_field='action_object_type', + object_id_field='action_object_id' + ) def __str__(self): return self.name