Skip to content

Commit

Permalink
adds tags on webhook model #11936
Browse files Browse the repository at this point in the history
  • Loading branch information
abhi1693 committed Aug 1, 2023
1 parent 836e6e0 commit a5c56b7
Show file tree
Hide file tree
Showing 11 changed files with 23 additions and 20 deletions.
4 changes: 2 additions & 2 deletions netbox/extras/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
# Webhooks
#

class WebhookSerializer(CustomFieldModelSerializer, ValidatedModelSerializer):
class WebhookSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='extras-api:webhook-detail')
content_types = ContentTypeField(
queryset=ContentType.objects.filter(FeatureQuery('webhooks').get_query()),
Expand All @@ -74,7 +74,7 @@ class Meta:
'id', 'url', 'display', 'content_types', 'name', 'type_create', 'type_update', 'type_delete',
'type_job_start', 'type_job_end', 'payload_url', 'enabled', 'http_method', 'http_content_type',
'additional_headers', 'body_template', 'secret', 'conditions', 'ssl_verification', 'ca_file_path',
'custom_fields', 'created', 'last_updated',
'custom_fields', 'tags', 'created', 'last_updated',
]


Expand Down
2 changes: 1 addition & 1 deletion netbox/extras/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
)


class WebhookFilterSet(BaseFilterSet):
class WebhookFilterSet(NetBoxModelFilterSet):
q = django_filters.CharFilter(
method='search',
label=_('Search'),
Expand Down
4 changes: 0 additions & 4 deletions netbox/extras/forms/bulk_edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,10 +226,6 @@ class WebhookBulkEditForm(NetBoxModelBulkEditForm):
label=_('CA file path')
)

add_tags = None

remove_tags = None

nullable_fields = ('secret', 'conditions', 'ca_file_path')


Expand Down
4 changes: 1 addition & 3 deletions netbox/extras/forms/bulk_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,14 +148,12 @@ class WebhookImportForm(NetBoxModelImportForm):
help_text=_("One or more assigned object types")
)

tags = None

class Meta:
model = Webhook
fields = (
'name', 'enabled', 'content_types', 'type_create', 'type_update', 'type_delete', 'type_job_start',
'type_job_end', 'payload_url', 'http_method', 'http_content_type', 'additional_headers', 'body_template',
'secret', 'ssl_verification', 'ca_file_path'
'secret', 'ssl_verification', 'ca_file_path', 'tags'
)


Expand Down
5 changes: 3 additions & 2 deletions netbox/extras/forms/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,11 +219,12 @@ class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
)


class WebhookFilterForm(CustomFieldsMixin, SavedFiltersMixin, FilterForm):
class WebhookFilterForm(NetBoxModelFilterSetForm):
model = Webhook
tag = TagFilterField(model)

fieldsets = (
(None, ('q', 'filter_id')),
(None, ('q', 'filter_id', 'tag')),
(_('Attributes'), ('content_type_id', 'http_method', 'enabled')),
(_('Events'), ('type_create', 'type_update', 'type_delete', 'type_job_start', 'type_job_end')),
)
Expand Down
4 changes: 1 addition & 3 deletions netbox/extras/forms/model_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,8 @@ class WebhookForm(NetBoxModelForm):
limit_choices_to=FeatureQuery('webhooks')
)

tags = None

fieldsets = (
(_('Webhook'), ('name', 'content_types', 'enabled')),
(_('Webhook'), ('name', 'content_types', 'enabled', 'tags')),
(_('Events'), ('type_create', 'type_update', 'type_delete', 'type_job_start', 'type_job_end')),
(_('HTTP Request'), (
'payload_url', 'http_method', 'http_content_type', 'additional_headers', 'body_template', 'secret',
Expand Down
4 changes: 2 additions & 2 deletions netbox/extras/graphql/types.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from extras import filtersets, models
from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
from netbox.graphql.types import BaseObjectType, ObjectType
from netbox.graphql.types import BaseObjectType, ObjectType, OrganizationalObjectType

__all__ = (
'ConfigContextType',
Expand Down Expand Up @@ -106,7 +106,7 @@ class Meta:
filterset_class = filtersets.TagFilterSet


class WebhookType(CustomFieldsMixin, ObjectType):
class WebhookType(OrganizationalObjectType):

class Meta:
model = models.Webhook
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Django 4.1.10 on 2023-08-01 15:29
# Generated by Django 4.1.10 on 2023-08-01 16:32

from django.db import migrations, models
import taggit.managers
import utilities.json


Expand All @@ -16,4 +17,9 @@ class Migration(migrations.Migration):
name='custom_field_data',
field=models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder),
),
migrations.AddField(
model_name='webhook',
name='tags',
field=taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag'),
),
]
2 changes: 1 addition & 1 deletion netbox/extras/models/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
)


class Webhook(CustomFieldsMixin, ExportTemplatesMixin, ChangeLoggedModel):
class Webhook(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, 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.
Expand Down
5 changes: 4 additions & 1 deletion netbox/extras/tables/tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -297,13 +297,16 @@ class WebhookTable(NetBoxTable):
ssl_validation = columns.BooleanColumn(
verbose_name=_('SSL Validation')
)
tags = columns.TagColumn(
url_name='extras:webhook_list'
)

class Meta(NetBoxTable.Meta):
model = Webhook
fields = (
'pk', 'id', 'name', 'content_types', 'enabled', 'type_create', 'type_update', 'type_delete',
'type_job_start', 'type_job_end', 'http_method', 'payload_url', 'secret', 'ssl_validation', 'ca_file_path',
'created', 'last_updated',
'tags', 'created', 'last_updated',
)
default_columns = (
'pk', 'name', 'content_types', 'enabled', 'type_create', 'type_update', 'type_delete', 'type_job_start',
Expand Down
1 change: 1 addition & 0 deletions netbox/templates/extras/webhook.html
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ <h5 class="card-header">
</div>
</div>
{% include 'inc/panels/custom_fields.html' %}
{% include 'inc/panels/tags.html' %}
{% plugin_right_page object %}
</div>
</div>
Expand Down

0 comments on commit a5c56b7

Please sign in to comment.