diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index 031a9c5a0..73b42f4c2 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -96,7 +96,6 @@ class CustomFieldSerializer(ValidatedModelSerializer): filter_logic = ChoiceField(choices=CustomFieldFilterLogicChoices, required=False) data_type = serializers.SerializerMethodField() choice_set = NestedCustomFieldChoiceSetSerializer(required=False) - ui_visibility = ChoiceField(choices=CustomFieldVisibilityChoices, required=False) ui_visible = ChoiceField(choices=CustomFieldUIVisibleChoices, required=False) ui_editable = ChoiceField(choices=CustomFieldUIEditableChoices, required=False) @@ -104,9 +103,9 @@ class CustomFieldSerializer(ValidatedModelSerializer): model = CustomField fields = [ 'id', 'url', 'display', 'content_types', 'type', 'object_type', 'data_type', 'name', 'label', 'group_name', - 'description', 'required', 'search_weight', 'filter_logic', 'ui_visibility', 'ui_visible', 'ui_editable', - 'is_cloneable', 'default', 'weight', 'validation_minimum', 'validation_maximum', 'validation_regex', - 'choice_set', 'created', 'last_updated', + 'description', 'required', 'search_weight', 'filter_logic', 'ui_visible', 'ui_editable', 'is_cloneable', + 'default', 'weight', 'validation_minimum', 'validation_maximum', 'validation_regex', 'choice_set', + 'created', 'last_updated', ] def validate_type(self, value): diff --git a/netbox/extras/choices.py b/netbox/extras/choices.py index 48e7f355b..fdb951b7d 100644 --- a/netbox/extras/choices.py +++ b/netbox/extras/choices.py @@ -53,21 +53,6 @@ class CustomFieldFilterLogicChoices(ChoiceSet): ) -class CustomFieldVisibilityChoices(ChoiceSet): - - VISIBILITY_READ_WRITE = 'read-write' - VISIBILITY_READ_ONLY = 'read-only' - VISIBILITY_HIDDEN = 'hidden' - VISIBILITY_HIDDEN_IFUNSET = 'hidden-ifunset' - - CHOICES = ( - (VISIBILITY_READ_WRITE, _('Read/write')), - (VISIBILITY_READ_ONLY, _('Read-only')), - (VISIBILITY_HIDDEN, _('Hidden')), - (VISIBILITY_HIDDEN_IFUNSET, _('Hidden (if unset)')), - ) - - class CustomFieldUIVisibleChoices(ChoiceSet): ALWAYS = 'always' diff --git a/netbox/extras/filtersets.py b/netbox/extras/filtersets.py index a1c1f83f2..32850bee2 100644 --- a/netbox/extras/filtersets.py +++ b/netbox/extras/filtersets.py @@ -87,8 +87,8 @@ class CustomFieldFilterSet(BaseFilterSet): class Meta: model = CustomField fields = [ - 'id', 'content_types', 'name', 'group_name', 'required', 'search_weight', 'filter_logic', 'ui_visibility', - 'ui_visible', 'ui_editable', 'weight', 'is_cloneable', 'description', + 'id', 'content_types', 'name', 'group_name', 'required', 'search_weight', 'filter_logic', 'ui_visible', + 'ui_editable', 'weight', 'is_cloneable', 'description', ] def search(self, queryset, name, value): diff --git a/netbox/extras/forms/bulk_edit.py b/netbox/extras/forms/bulk_edit.py index a7867ab6b..5da2a5dde 100644 --- a/netbox/extras/forms/bulk_edit.py +++ b/netbox/extras/forms/bulk_edit.py @@ -48,12 +48,6 @@ class CustomFieldBulkEditForm(BulkEditForm): queryset=CustomFieldChoiceSet.objects.all(), required=False ) - ui_visibility = forms.ChoiceField( - label=_("UI visibility"), - choices=add_blank_choice(CustomFieldVisibilityChoices), - required=False, - initial='' - ) ui_visible = forms.ChoiceField( label=_("UI visible"), choices=add_blank_choice(CustomFieldUIVisibleChoices), diff --git a/netbox/extras/forms/bulk_import.py b/netbox/extras/forms/bulk_import.py index 302c38eaa..ecfe641a5 100644 --- a/netbox/extras/forms/bulk_import.py +++ b/netbox/extras/forms/bulk_import.py @@ -51,11 +51,6 @@ class CustomFieldImportForm(CSVModelForm): required=False, help_text=_('Choice set (for selection fields)') ) - ui_visibility = CSVChoiceField( - label=_('UI visibility'), - choices=CustomFieldVisibilityChoices, - help_text=_('How the custom field is displayed in the user interface') - ) ui_visible = CSVChoiceField( label=_('UI visible'), choices=CustomFieldUIVisibleChoices, @@ -74,7 +69,7 @@ class CustomFieldImportForm(CSVModelForm): fields = ( 'name', 'label', 'group_name', 'type', 'content_types', 'object_type', 'required', 'description', 'search_weight', 'filter_logic', 'default', 'choice_set', 'weight', 'validation_minimum', - 'validation_maximum', 'validation_regex', 'ui_visibility', 'ui_visible', 'ui_editable', 'is_cloneable', + 'validation_maximum', 'validation_regex', 'ui_visible', 'ui_editable', 'is_cloneable', ) diff --git a/netbox/extras/forms/filtersets.py b/netbox/extras/forms/filtersets.py index 5cc46b49b..a6e4135d4 100644 --- a/netbox/extras/forms/filtersets.py +++ b/netbox/extras/forms/filtersets.py @@ -39,8 +39,8 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm): fieldsets = ( (None, ('q', 'filter_id')), (_('Attributes'), ( - 'type', 'content_type_id', 'group_name', 'weight', 'required', 'choice_set_id', 'ui_visibility', - 'ui_visible', 'ui_editable', 'is_cloneable', + 'type', 'content_type_id', 'group_name', 'weight', 'required', 'choice_set_id', 'ui_visible', 'ui_editable', + 'is_cloneable', )), ) content_type_id = ContentTypeMultipleChoiceField( @@ -73,11 +73,6 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm): required=False, label=_('Choice set') ) - ui_visibility = forms.ChoiceField( - choices=add_blank_choice(CustomFieldVisibilityChoices), - required=False, - label=_('UI visibility') - ) ui_visible = forms.ChoiceField( choices=add_blank_choice(CustomFieldUIVisibleChoices), required=False, diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py index d8a6574e3..eff0edf86 100644 --- a/netbox/extras/forms/model_forms.py +++ b/netbox/extras/forms/model_forms.py @@ -61,7 +61,7 @@ class CustomFieldForm(BootstrapMixin, forms.ModelForm): (_('Custom Field'), ( 'content_types', 'name', 'label', 'group_name', 'type', 'object_type', 'required', 'description', )), - (_('Behavior'), ('search_weight', 'filter_logic', 'ui_visibility', 'ui_visible', 'ui_editable', 'weight', 'is_cloneable')), + (_('Behavior'), ('search_weight', 'filter_logic', 'ui_visible', 'ui_editable', 'weight', 'is_cloneable')), (_('Values'), ('default', 'choice_set')), (_('Validation'), ('validation_minimum', 'validation_maximum', 'validation_regex')), ) diff --git a/netbox/extras/migrations/0100_customfield_ui_attrs.py b/netbox/extras/migrations/0100_customfield_ui_attrs.py index 44de004fe..a4a713a86 100644 --- a/netbox/extras/migrations/0100_customfield_ui_attrs.py +++ b/netbox/extras/migrations/0100_customfield_ui_attrs.py @@ -34,4 +34,8 @@ class Migration(migrations.Migration): code=update_ui_attrs, reverse_code=migrations.RunPython.noop ), + migrations.RemoveField( + model_name='customfield', + name='ui_visibility', + ), ] diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 58334bf08..8d8ad545f 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -179,13 +179,6 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): blank=True, null=True ) - ui_visibility = models.CharField( - max_length=50, - choices=CustomFieldVisibilityChoices, - default=CustomFieldVisibilityChoices.VISIBILITY_READ_WRITE, - verbose_name=_('UI visibility'), - help_text=_('Specifies the visibility of custom field in the UI') - ) ui_visible = models.CharField( max_length=50, choices=CustomFieldUIVisibleChoices, @@ -211,7 +204,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): clone_fields = ( 'content_types', 'type', 'object_type', 'group_name', 'description', 'required', 'search_weight', 'filter_logic', 'default', 'weight', 'validation_minimum', 'validation_maximum', 'validation_regex', - 'choice_set', 'ui_visibility', 'ui_visible', 'ui_editable', 'is_cloneable', + 'choice_set', 'ui_visible', 'ui_editable', 'is_cloneable', ) class Meta: diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 57bb33bd7..54194c00f 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -71,9 +71,6 @@ class CustomFieldTable(NetBoxTable): required = columns.BooleanColumn( verbose_name=_('Required') ) - ui_visibility = columns.ChoiceFieldColumn( - verbose_name=_('UI Visibility') - ) ui_visible = columns.ChoiceFieldColumn( verbose_name=_('Visible') ) @@ -100,8 +97,8 @@ class CustomFieldTable(NetBoxTable): model = CustomField fields = ( 'pk', 'id', 'name', 'content_types', 'label', 'type', 'group_name', 'required', 'default', 'description', - 'search_weight', 'filter_logic', 'ui_visibility', 'ui_visible', 'ui_editable', 'is_cloneable', 'weight', - 'choice_set', 'choices', 'created', 'last_updated', + 'search_weight', 'filter_logic', 'ui_visible', 'ui_editable', 'is_cloneable', 'weight', 'choice_set', + 'choices', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'content_types', 'label', 'group_name', 'type', 'required', 'description')