From 446ee761d3e2ebba73659f475f723a50331df6d8 Mon Sep 17 00:00:00 2001 From: Jamie Murphy Date: Mon, 29 May 2023 21:32:01 +0100 Subject: [PATCH] custom fields, url in new window, bulk edit/import support --- netbox/extras/api/serializers.py | 2 +- netbox/extras/forms/bulk_edit.py | 4 ++++ netbox/extras/forms/bulk_import.py | 2 +- netbox/extras/models/customfields.py | 4 ++-- netbox/templates/extras/customfield.html | 4 ++++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index cbe4ed56d..79e3eca11 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -101,7 +101,7 @@ class CustomFieldSerializer(ValidatedModelSerializer): 'id', 'url', 'display', 'content_types', 'type', 'object_type', 'data_type', 'name', 'label', 'group_name', 'description', 'required', 'search_weight', 'filter_logic', 'ui_visibility', 'is_cloneable', 'default', 'weight', 'validation_minimum', 'validation_maximum', 'validation_regex', 'choices', 'created', - 'last_updated', + 'last_updated', 'new_window', ] def validate_type(self, value): diff --git a/netbox/extras/forms/bulk_edit.py b/netbox/extras/forms/bulk_edit.py index 7c838be20..1576b21ed 100644 --- a/netbox/extras/forms/bulk_edit.py +++ b/netbox/extras/forms/bulk_edit.py @@ -48,6 +48,10 @@ class CustomFieldBulkEditForm(BulkEditForm): required=False, widget=BulkEditNullBooleanSelect() ) + new_window = forms.NullBooleanField( + required=False, + widget=BulkEditNullBooleanSelect() + ) nullable_fields = ('group_name', 'description',) diff --git a/netbox/extras/forms/bulk_import.py b/netbox/extras/forms/bulk_import.py index 818b8a52f..9a062f981 100644 --- a/netbox/extras/forms/bulk_import.py +++ b/netbox/extras/forms/bulk_import.py @@ -54,7 +54,7 @@ class CustomFieldImportForm(CSVModelForm): fields = ( 'name', 'label', 'group_name', 'type', 'content_types', 'object_type', 'required', 'description', 'search_weight', 'filter_logic', 'default', 'choices', 'weight', 'validation_minimum', 'validation_maximum', - 'validation_regex', 'ui_visibility', 'is_cloneable', + 'validation_regex', 'ui_visibility', 'is_cloneable', 'new_window', ) diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 7dd19f8bc..ed77f7568 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -162,7 +162,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): base_field=models.CharField(max_length=100), blank=True, null=True, - help_text=_('Comma-separated list of available choices (for selection fields)') + help_text=_('Comma-separated list of available choices (for url fields)') ) ui_visibility = models.CharField( max_length=50, @@ -178,7 +178,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): ) new_window = models.BooleanField( default=False, - help_text=_("Force link to open in a new window") + help_text=_("Force link to open in a new window (for selection fields)") ) objects = CustomFieldManager() diff --git a/netbox/templates/extras/customfield.html b/netbox/templates/extras/customfield.html index b783c8a77..6604c18d3 100644 --- a/netbox/templates/extras/customfield.html +++ b/netbox/templates/extras/customfield.html @@ -64,6 +64,10 @@ Cloneable {% checkmark object.is_cloneable %} + + New Window + {% checkmark object.new_window %} +