Просмотр исходного кода

Closes #11737: ChangeLoggedModel should inherit WebhooksMixin

jeremystretch 3 лет назад
Родитель
Сommit
96a79c2126

+ 0 - 3
netbox/circuits/models/circuits.py

@@ -1,4 +1,3 @@
-from django.apps import apps
 from django.contrib.contenttypes.fields import GenericRelation
 from django.core.exceptions import ValidationError
 from django.db import models
@@ -10,7 +9,6 @@ from dcim.models import CabledObjectModel
 from netbox.models import (
     ChangeLoggedModel, CustomFieldsMixin, CustomLinksMixin, OrganizationalModel, PrimaryModel, TagsMixin,
 )
-from netbox.models.features import WebhooksMixin
 
 __all__ = (
     'Circuit',
@@ -132,7 +130,6 @@ class CircuitTermination(
     CustomFieldsMixin,
     CustomLinksMixin,
     TagsMixin,
-    WebhooksMixin,
     ChangeLoggedModel,
     CabledObjectModel
 ):

+ 1 - 2
netbox/dcim/models/device_component_templates.py

@@ -9,7 +9,6 @@ from mptt.models import MPTTModel, TreeForeignKey
 from dcim.choices import *
 from dcim.constants import *
 from netbox.models import ChangeLoggedModel
-from netbox.models.features import WebhooksMixin
 from utilities.fields import ColorField, NaturalOrderingField
 from utilities.mptt import TreeManager
 from utilities.ordering import naturalize_interface
@@ -33,7 +32,7 @@ __all__ = (
 )
 
 
-class ComponentTemplateModel(WebhooksMixin, ChangeLoggedModel):
+class ComponentTemplateModel(ChangeLoggedModel):
     device_type = models.ForeignKey(
         to='dcim.DeviceType',
         on_delete=models.CASCADE,

+ 2 - 3
netbox/extras/models/configcontexts.py

@@ -6,10 +6,9 @@ from django.utils import timezone
 
 from extras.querysets import ConfigContextQuerySet
 from netbox.models import ChangeLoggedModel
-from netbox.models.features import SyncedDataMixin, WebhooksMixin
+from netbox.models.features import SyncedDataMixin
 from utilities.utils import deepmerge
 
-
 __all__ = (
     'ConfigContext',
     'ConfigContextModel',
@@ -20,7 +19,7 @@ __all__ = (
 # Config contexts
 #
 
-class ConfigContext(SyncedDataMixin, WebhooksMixin, ChangeLoggedModel):
+class ConfigContext(SyncedDataMixin, ChangeLoggedModel):
     """
     A ConfigContext represents a set of arbitrary data available to any Device or VirtualMachine matching its assigned
     qualifiers (region, site, etc.). For example, the data stored in a ConfigContext assigned to site A and tenant B

+ 2 - 2
netbox/extras/models/customfields.py

@@ -17,7 +17,7 @@ from django.utils.translation import gettext as _
 from extras.choices import *
 from extras.utils import FeatureQuery
 from netbox.models import ChangeLoggedModel
-from netbox.models.features import CloningMixin, ExportTemplatesMixin, WebhooksMixin
+from netbox.models.features import CloningMixin, ExportTemplatesMixin
 from netbox.search import FieldTypes
 from utilities import filters
 from utilities.forms.fields import (
@@ -56,7 +56,7 @@ class CustomFieldManager(models.Manager.from_queryset(RestrictedQuerySet)):
         return self.get_queryset().filter(content_types=content_type)
 
 
-class CustomField(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel):
+class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
     content_types = models.ManyToManyField(
         to=ContentType,
         related_name='custom_fields',

+ 7 - 7
netbox/extras/models/models.py

@@ -27,7 +27,7 @@ from netbox.constants import RQ_QUEUE_DEFAULT
 from netbox.models import ChangeLoggedModel
 from netbox.models.features import (
     CloningMixin, CustomFieldsMixin, CustomLinksMixin, ExportTemplatesMixin, JobResultsMixin, SyncedDataMixin,
-    TagsMixin, WebhooksMixin,
+    TagsMixin,
 )
 from utilities.querysets import RestrictedQuerySet
 from utilities.utils import render_jinja2
@@ -46,7 +46,7 @@ __all__ = (
 )
 
 
-class Webhook(ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel):
+class Webhook(ExportTemplatesMixin, ChangeLoggedModel):
     """
     A Webhook defines a request that will be sent to a remote application when an object is created, updated, and/or
     delete in NetBox. The request will contain a representation of the object, which the remote application can act on.
@@ -203,7 +203,7 @@ class Webhook(ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel):
         return render_jinja2(self.payload_url, context)
 
 
-class CustomLink(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel):
+class CustomLink(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
     """
     A custom link to an external representation of a NetBox object. The link text and URL fields accept Jinja2 template
     code to be rendered with an object as context.
@@ -282,7 +282,7 @@ class CustomLink(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogged
         }
 
 
-class ExportTemplate(SyncedDataMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel):
+class ExportTemplate(SyncedDataMixin, ExportTemplatesMixin, ChangeLoggedModel):
     content_types = models.ManyToManyField(
         to=ContentType,
         related_name='export_templates',
@@ -376,7 +376,7 @@ class ExportTemplate(SyncedDataMixin, ExportTemplatesMixin, WebhooksMixin, Chang
         return response
 
 
-class SavedFilter(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel):
+class SavedFilter(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
     """
     A set of predefined keyword parameters that can be reused to filter for specific objects.
     """
@@ -447,7 +447,7 @@ class SavedFilter(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogge
         return qd.urlencode()
 
 
-class ImageAttachment(WebhooksMixin, ChangeLoggedModel):
+class ImageAttachment(ChangeLoggedModel):
     """
     An uploaded image which is associated with an object.
     """
@@ -523,7 +523,7 @@ class ImageAttachment(WebhooksMixin, ChangeLoggedModel):
         return objectchange
 
 
-class JournalEntry(CustomFieldsMixin, CustomLinksMixin, TagsMixin, WebhooksMixin, ExportTemplatesMixin, ChangeLoggedModel):
+class JournalEntry(CustomFieldsMixin, CustomLinksMixin, TagsMixin, ExportTemplatesMixin, ChangeLoggedModel):
     """
     A historical remark concerning an object; collectively, these form an object's journal. The journal is used to
     preserve historical context around an object, and complements NetBox's built-in change logging. For example, you

+ 2 - 2
netbox/extras/models/tags.py

@@ -5,7 +5,7 @@ from django.utils.text import slugify
 from taggit.models import TagBase, GenericTaggedItemBase
 
 from netbox.models import ChangeLoggedModel
-from netbox.models.features import ExportTemplatesMixin, WebhooksMixin
+from netbox.models.features import ExportTemplatesMixin
 from utilities.choices import ColorChoices
 from utilities.fields import ColorField
 
@@ -14,7 +14,7 @@ from utilities.fields import ColorField
 # Tags
 #
 
-class Tag(ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel, TagBase):
+class Tag(ExportTemplatesMixin, ChangeLoggedModel, TagBase):
     id = models.BigAutoField(
         primary_key=True
     )

+ 1 - 2
netbox/ipam/models/fhrp.py

@@ -5,7 +5,6 @@ from django.db import models
 from django.urls import reverse
 
 from netbox.models import ChangeLoggedModel, PrimaryModel
-from netbox.models.features import WebhooksMixin
 from ipam.choices import *
 from ipam.constants import *
 
@@ -73,7 +72,7 @@ class FHRPGroup(PrimaryModel):
         return reverse('ipam:fhrpgroup', args=[self.pk])
 
 
-class FHRPGroupAssignment(WebhooksMixin, ChangeLoggedModel):
+class FHRPGroupAssignment(ChangeLoggedModel):
     interface_type = models.ForeignKey(
         to=ContentType,
         on_delete=models.CASCADE

+ 1 - 1
netbox/netbox/models/__init__.py

@@ -38,7 +38,7 @@ class NetBoxFeatureSet(
 # Base model classes
 #
 
-class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, models.Model):
+class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, WebhooksMixin, models.Model):
     """
     Base model for ancillary models; provides limited functionality for models which don't
     support NetBox's full feature set.

+ 1 - 2
netbox/tenancy/models/contacts.py

@@ -4,7 +4,6 @@ from django.db import models
 from django.urls import reverse
 
 from netbox.models import ChangeLoggedModel, NestedGroupModel, OrganizationalModel, PrimaryModel
-from netbox.models.features import WebhooksMixin
 from tenancy.choices import *
 
 __all__ = (
@@ -93,7 +92,7 @@ class Contact(PrimaryModel):
         return reverse('tenancy:contact', args=[self.pk])
 
 
-class ContactAssignment(WebhooksMixin, ChangeLoggedModel):
+class ContactAssignment(ChangeLoggedModel):
     content_type = models.ForeignKey(
         to=ContentType,
         on_delete=models.CASCADE