Skip to content

Commit 7177fcf

Browse files
committed
Use DynamicModelChoiceField for all fields using APISelect
1 parent fb56d5b commit 7177fcf

File tree

8 files changed

+363
-246
lines changed

8 files changed

+363
-246
lines changed

netbox/circuits/forms.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from tenancy.models import Tenant
1010
from utilities.forms import (
1111
APISelect, APISelectMultiple, add_blank_choice, BootstrapMixin, CommentField, CSVChoiceField, DatePicker,
12-
DynamicModelMultipleChoiceField, SmallTextarea, SlugField, StaticSelect2, StaticSelect2Multiple, TagFilterField,
12+
DynamicModelChoiceField, DynamicModelMultipleChoiceField, SmallTextarea, SlugField, StaticSelect2,
13+
StaticSelect2Multiple, TagFilterField,
1314
)
1415
from .choices import CircuitStatusChoices
1516
from .models import Circuit, CircuitTermination, CircuitType, Provider
@@ -165,6 +166,18 @@ class Meta:
165166
#
166167

167168
class CircuitForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
169+
provider = DynamicModelChoiceField(
170+
queryset=Provider.objects.all(),
171+
widget=APISelect(
172+
api_url="/api/circuits/providers/"
173+
)
174+
)
175+
type = DynamicModelChoiceField(
176+
queryset=CircuitType.objects.all(),
177+
widget=APISelect(
178+
api_url="/api/circuits/circuit-types/"
179+
)
180+
)
168181
comments = CommentField()
169182
tags = TagField(
170183
required=False
@@ -181,12 +194,6 @@ class Meta:
181194
'commit_rate': "Committed rate",
182195
}
183196
widgets = {
184-
'provider': APISelect(
185-
api_url="/api/circuits/providers/"
186-
),
187-
'type': APISelect(
188-
api_url="/api/circuits/circuit-types/"
189-
),
190197
'status': StaticSelect2(),
191198
'install_date': DatePicker(),
192199
}
@@ -236,14 +243,14 @@ class CircuitBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEdit
236243
queryset=Circuit.objects.all(),
237244
widget=forms.MultipleHiddenInput
238245
)
239-
type = forms.ModelChoiceField(
246+
type = DynamicModelChoiceField(
240247
queryset=CircuitType.objects.all(),
241248
required=False,
242249
widget=APISelect(
243250
api_url="/api/circuits/circuit-types/"
244251
)
245252
)
246-
provider = forms.ModelChoiceField(
253+
provider = DynamicModelChoiceField(
247254
queryset=Provider.objects.all(),
248255
required=False,
249256
widget=APISelect(
@@ -256,7 +263,7 @@ class CircuitBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEdit
256263
initial='',
257264
widget=StaticSelect2()
258265
)
259-
tenant = forms.ModelChoiceField(
266+
tenant = DynamicModelChoiceField(
260267
queryset=Tenant.objects.all(),
261268
required=False,
262269
widget=APISelect(

0 commit comments

Comments
 (0)