Skip to content

Commit d6c41fb

Browse files
Closes #11765: Remove StaticSelect & StaticSelectMultiple (#11767)
* Remove StaticSelect, StaticSelectMultiple form widgets * Tag custom ChoiceField, MultipleChoiceField classes for removal in v3.6
1 parent 959a2ab commit d6c41fb

30 files changed

+220
-483
lines changed

docs/plugins/development/forms.md

+3
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ In addition to the [form fields provided by Django](https://docs.djangoproject.c
170170

171171
## Choice Fields
172172

173+
!!! warning "Obsolete Fields"
174+
NetBox's custom `ChoiceField` and `MultipleChoiceField` classes are no longer necessary thanks to improvements made to the user interface. Django's native form fields can be used instead. These custom field classes will be removed in NetBox v3.6.
175+
173176
::: utilities.forms.ChoiceField
174177
options:
175178
members: false

netbox/circuits/forms/bulk_edit.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from netbox.forms import NetBoxModelBulkEditForm
88
from tenancy.models import Tenant
99
from utilities.forms import (
10-
add_blank_choice, CommentField, DatePicker, DynamicModelChoiceField, DynamicModelMultipleChoiceField, StaticSelect,
10+
add_blank_choice, CommentField, DatePicker, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
1111
)
1212

1313
__all__ = (
@@ -100,8 +100,7 @@ class CircuitBulkEditForm(NetBoxModelBulkEditForm):
100100
status = forms.ChoiceField(
101101
choices=add_blank_choice(CircuitStatusChoices),
102102
required=False,
103-
initial='',
104-
widget=StaticSelect()
103+
initial=''
105104
)
106105
tenant = DynamicModelChoiceField(
107106
queryset=Tenant.objects.all(),

netbox/circuits/forms/filtersets.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from ipam.models import ASN
88
from netbox.forms import NetBoxModelFilterSetForm
99
from tenancy.forms import TenancyFilterForm, ContactModelFilterForm
10-
from utilities.forms import DatePicker, DynamicModelMultipleChoiceField, MultipleChoiceField, TagFilterField
10+
from utilities.forms import DatePicker, DynamicModelMultipleChoiceField, TagFilterField
1111

1212
__all__ = (
1313
'CircuitFilterForm',
@@ -107,7 +107,7 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFi
107107
},
108108
label=_('Provider network')
109109
)
110-
status = MultipleChoiceField(
110+
status = forms.MultipleChoiceField(
111111
choices=CircuitStatusChoices,
112112
required=False
113113
)

netbox/circuits/forms/model_forms.py

-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from tenancy.forms import TenancyForm
88
from utilities.forms import (
99
CommentField, DatePicker, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SelectSpeedWidget, SlugField,
10-
StaticSelect,
1110
)
1211

1312
__all__ = (
@@ -102,7 +101,6 @@ class Meta:
102101
'commit_rate': _("Committed rate"),
103102
}
104103
widgets = {
105-
'status': StaticSelect(),
106104
'install_date': DatePicker(),
107105
'termination_date': DatePicker(),
108106
'commit_rate': SelectSpeedWidget(),
@@ -174,7 +172,6 @@ class Meta:
174172
'pp_info': _("Patch panel ID and port number(s)")
175173
}
176174
widgets = {
177-
'term_side': StaticSelect(),
178175
'port_speed': SelectSpeedWidget(),
179176
'upstream_speed': SelectSpeedWidget(),
180177
}

netbox/core/forms/bulk_edit.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
from core.choices import DataSourceTypeChoices
55
from core.models import *
66
from netbox.forms import NetBoxModelBulkEditForm
7-
from utilities.forms import (
8-
add_blank_choice, BulkEditNullBooleanSelect, CommentField, StaticSelect,
9-
)
7+
from utilities.forms import add_blank_choice, BulkEditNullBooleanSelect, CommentField
108

119
__all__ = (
1210
'DataSourceBulkEditForm',
@@ -17,8 +15,7 @@ class DataSourceBulkEditForm(NetBoxModelBulkEditForm):
1715
type = forms.ChoiceField(
1816
choices=add_blank_choice(DataSourceTypeChoices),
1917
required=False,
20-
initial='',
21-
widget=StaticSelect()
18+
initial=''
2219
)
2320
enabled = forms.NullBooleanField(
2421
required=False,

netbox/core/forms/filtersets.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
from core.choices import *
55
from core.models import *
66
from netbox.forms import NetBoxModelFilterSetForm
7-
from utilities.forms import (
8-
BOOLEAN_WITH_BLANK_CHOICES, DynamicModelMultipleChoiceField, MultipleChoiceField, StaticSelect,
9-
)
7+
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, DynamicModelMultipleChoiceField
108

119
__all__ = (
1210
'DataFileFilterForm',
@@ -20,17 +18,17 @@ class DataSourceFilterForm(NetBoxModelFilterSetForm):
2018
(None, ('q', 'filter_id')),
2119
('Data Source', ('type', 'status')),
2220
)
23-
type = MultipleChoiceField(
21+
type = forms.MultipleChoiceField(
2422
choices=DataSourceTypeChoices,
2523
required=False
2624
)
27-
status = MultipleChoiceField(
25+
status = forms.MultipleChoiceField(
2826
choices=DataSourceStatusChoices,
2927
required=False
3028
)
3129
enabled = forms.NullBooleanField(
3230
required=False,
33-
widget=StaticSelect(
31+
widget=forms.Select(
3432
choices=BOOLEAN_WITH_BLANK_CHOICES
3533
)
3634
)

netbox/core/forms/model_forms.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from django import forms
44

55
from core.models import *
6-
from netbox.forms import NetBoxModelForm, StaticSelect
6+
from netbox.forms import NetBoxModelForm
77
from netbox.registry import registry
88
from utilities.forms import CommentField
99

@@ -21,7 +21,7 @@ class Meta:
2121
'name', 'type', 'source_url', 'enabled', 'description', 'comments', 'ignore_rules', 'tags',
2222
]
2323
widgets = {
24-
'type': StaticSelect(
24+
'type': forms.Select(
2525
attrs={
2626
'hx-get': '.',
2727
'hx-include': '#form_fields input',

0 commit comments

Comments
 (0)