Fixes #7290: Defer loading API-backed form fields

This commit is contained in:
jeremystretch 2021-12-29 09:30:43 -05:00
parent 146a51ceba
commit 9c9fcaf42f
13 changed files with 146 additions and 287 deletions

View File

@ -11,6 +11,7 @@
### Bug Fixes ### Bug Fixes
* [#7246](https://github.com/netbox-community/netbox/issues/7246) - Don't attempt to URL-decode NAPALM response payloads * [#7246](https://github.com/netbox-community/netbox/issues/7246) - Don't attempt to URL-decode NAPALM response payloads
* [#7290](https://github.com/netbox-community/netbox/issues/7290) - Defer loading API-backed form fields
* [#7887](https://github.com/netbox-community/netbox/issues/7887) - Forward `HTTP_X_FORWARDED_FOR` to custom scripts * [#7887](https://github.com/netbox-community/netbox/issues/7887) - Forward `HTTP_X_FORWARDED_FOR` to custom scripts
* [#7962](https://github.com/netbox-community/netbox/issues/7962) - Fix user menu under report/script result view * [#7962](https://github.com/netbox-community/netbox/issues/7962) - Fix user menu under report/script result view
* [#7972](https://github.com/netbox-community/netbox/issues/7972) - Standardize name of `RemoteUserBackend` logger * [#7972](https://github.com/netbox-community/netbox/issues/7972) - Standardize name of `RemoteUserBackend` logger

View File

@ -26,14 +26,12 @@ class ProviderFilterForm(CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -42,8 +40,7 @@ class ProviderFilterForm(CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'site_group_id': '$site_group_id', 'site_group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
asn = forms.IntegerField( asn = forms.IntegerField(
required=False, required=False,
@ -61,8 +58,7 @@ class ProviderNetworkFilterForm(CustomFieldModelFilterForm):
provider_id = DynamicModelMultipleChoiceField( provider_id = DynamicModelMultipleChoiceField(
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
required=False, required=False,
label=_('Provider'), label=_('Provider')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -84,14 +80,12 @@ class CircuitFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
type_id = DynamicModelMultipleChoiceField( type_id = DynamicModelMultipleChoiceField(
queryset=CircuitType.objects.all(), queryset=CircuitType.objects.all(),
required=False, required=False,
label=_('Type'), label=_('Type')
fetch_trigger='open'
) )
provider_id = DynamicModelMultipleChoiceField( provider_id = DynamicModelMultipleChoiceField(
queryset=Provider.objects.all(), queryset=Provider.objects.all(),
required=False, required=False,
label=_('Provider'), label=_('Provider')
fetch_trigger='open'
) )
provider_network_id = DynamicModelMultipleChoiceField( provider_network_id = DynamicModelMultipleChoiceField(
queryset=ProviderNetwork.objects.all(), queryset=ProviderNetwork.objects.all(),
@ -99,8 +93,7 @@ class CircuitFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'provider_id': '$provider_id' 'provider_id': '$provider_id'
}, },
label=_('Provider network'), label=_('Provider network')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=CircuitStatusChoices, choices=CircuitStatusChoices,
@ -110,14 +103,12 @@ class CircuitFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -126,8 +117,7 @@ class CircuitFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'site_group_id': '$site_group_id', 'site_group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
commit_rate = forms.IntegerField( commit_rate = forms.IntegerField(
required=False, required=False,

View File

@ -57,14 +57,12 @@ class DeviceComponentFilterForm(CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -73,8 +71,7 @@ class DeviceComponentFilterForm(CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'group_id': '$site_group_id', 'group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
location_id = DynamicModelMultipleChoiceField( location_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
@ -82,14 +79,12 @@ class DeviceComponentFilterForm(CustomFieldModelFilterForm):
query_params={ query_params={
'site_id': '$site_id', 'site_id': '$site_id',
}, },
label=_('Location'), label=_('Location')
fetch_trigger='open'
) )
virtual_chassis_id = DynamicModelMultipleChoiceField( virtual_chassis_id = DynamicModelMultipleChoiceField(
queryset=VirtualChassis.objects.all(), queryset=VirtualChassis.objects.all(),
required=False, required=False,
label=_('Virtual Chassis'), label=_('Virtual Chassis')
fetch_trigger='open'
) )
device_id = DynamicModelMultipleChoiceField( device_id = DynamicModelMultipleChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
@ -99,8 +94,7 @@ class DeviceComponentFilterForm(CustomFieldModelFilterForm):
'location_id': '$location_id', 'location_id': '$location_id',
'virtual_chassis_id': '$virtual_chassis_id' 'virtual_chassis_id': '$virtual_chassis_id'
}, },
label=_('Device'), label=_('Device')
fetch_trigger='open'
) )
@ -109,8 +103,7 @@ class RegionFilterForm(CustomFieldModelFilterForm):
parent_id = DynamicModelMultipleChoiceField( parent_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Parent region'), label=_('Parent region')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -120,8 +113,7 @@ class SiteGroupFilterForm(CustomFieldModelFilterForm):
parent_id = DynamicModelMultipleChoiceField( parent_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Parent group'), label=_('Parent group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -142,20 +134,17 @@ class SiteFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
group_id = DynamicModelMultipleChoiceField( group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
asn_id = DynamicModelMultipleChoiceField( asn_id = DynamicModelMultipleChoiceField(
queryset=ASN.objects.all(), queryset=ASN.objects.all(),
required=False, required=False,
label=_('ASNs'), label=_('ASNs')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -170,14 +159,12 @@ class LocationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -186,8 +173,7 @@ class LocationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'group_id': '$site_group_id', 'group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
parent_id = DynamicModelMultipleChoiceField( parent_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
@ -196,8 +182,7 @@ class LocationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'site_id': '$site_id', 'site_id': '$site_id',
}, },
label=_('Parent'), label=_('Parent')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -219,8 +204,7 @@ class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -228,8 +212,7 @@ class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
location_id = DynamicModelMultipleChoiceField( location_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
@ -238,8 +221,7 @@ class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Location'), label=_('Location')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=RackStatusChoices, choices=RackStatusChoices,
@ -260,8 +242,7 @@ class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
queryset=RackRole.objects.all(), queryset=RackRole.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Role'), label=_('Role')
fetch_trigger='open'
) )
serial = forms.CharField( serial = forms.CharField(
required=False required=False
@ -280,8 +261,7 @@ class RackElevationFilterForm(RackFilterForm):
query_params={ query_params={
'site_id': '$site_id', 'site_id': '$site_id',
'location_id': '$location_id', 'location_id': '$location_id',
}, }
fetch_trigger='open'
) )
@ -296,8 +276,7 @@ class RackReservationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -305,15 +284,13 @@ class RackReservationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
location_id = DynamicModelMultipleChoiceField( location_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.prefetch_related('site'), queryset=Location.objects.prefetch_related('site'),
required=False, required=False,
label=_('Location'), label=_('Location'),
null_option='None', null_option='None'
fetch_trigger='open'
) )
user_id = DynamicModelMultipleChoiceField( user_id = DynamicModelMultipleChoiceField(
queryset=User.objects.all(), queryset=User.objects.all(),
@ -321,8 +298,7 @@ class RackReservationFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
label=_('User'), label=_('User'),
widget=APISelectMultiple( widget=APISelectMultiple(
api_url='/api/users/users/', api_url='/api/users/users/',
), )
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -342,8 +318,7 @@ class DeviceTypeFilterForm(CustomFieldModelFilterForm):
manufacturer_id = DynamicModelMultipleChoiceField( manufacturer_id = DynamicModelMultipleChoiceField(
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
required=False, required=False,
label=_('Manufacturer'), label=_('Manufacturer')
fetch_trigger='open'
) )
subdevice_role = forms.MultipleChoiceField( subdevice_role = forms.MultipleChoiceField(
choices=add_blank_choice(SubdeviceRoleChoices), choices=add_blank_choice(SubdeviceRoleChoices),
@ -410,8 +385,7 @@ class PlatformFilterForm(CustomFieldModelFilterForm):
manufacturer_id = DynamicModelMultipleChoiceField( manufacturer_id = DynamicModelMultipleChoiceField(
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
required=False, required=False,
label=_('Manufacturer'), label=_('Manufacturer')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -432,14 +406,12 @@ class DeviceFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFi
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -448,8 +420,7 @@ class DeviceFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFi
'region_id': '$region_id', 'region_id': '$region_id',
'group_id': '$site_group_id', 'group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
location_id = DynamicModelMultipleChoiceField( location_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
@ -458,8 +429,7 @@ class DeviceFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFi
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Location'), label=_('Location')
fetch_trigger='open'
) )
rack_id = DynamicModelMultipleChoiceField( rack_id = DynamicModelMultipleChoiceField(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
@ -469,20 +439,17 @@ class DeviceFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFi
'site_id': '$site_id', 'site_id': '$site_id',
'location_id': '$location_id', 'location_id': '$location_id',
}, },
label=_('Rack'), label=_('Rack')
fetch_trigger='open'
) )
role_id = DynamicModelMultipleChoiceField( role_id = DynamicModelMultipleChoiceField(
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
required=False, required=False,
label=_('Role'), label=_('Role')
fetch_trigger='open'
) )
manufacturer_id = DynamicModelMultipleChoiceField( manufacturer_id = DynamicModelMultipleChoiceField(
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
required=False, required=False,
label=_('Manufacturer'), label=_('Manufacturer')
fetch_trigger='open'
) )
device_type_id = DynamicModelMultipleChoiceField( device_type_id = DynamicModelMultipleChoiceField(
queryset=DeviceType.objects.all(), queryset=DeviceType.objects.all(),
@ -490,15 +457,13 @@ class DeviceFilterForm(LocalConfigContextFilterForm, TenancyFilterForm, CustomFi
query_params={ query_params={
'manufacturer_id': '$manufacturer_id' 'manufacturer_id': '$manufacturer_id'
}, },
label=_('Model'), label=_('Model')
fetch_trigger='open'
) )
platform_id = DynamicModelMultipleChoiceField( platform_id = DynamicModelMultipleChoiceField(
queryset=Platform.objects.all(), queryset=Platform.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Platform'), label=_('Platform')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=DeviceStatusChoices, choices=DeviceStatusChoices,
@ -589,14 +554,12 @@ class VirtualChassisFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -605,8 +568,7 @@ class VirtualChassisFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'group_id': '$site_group_id', 'group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -622,8 +584,7 @@ class CableFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -631,8 +592,7 @@ class CableFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
rack_id = DynamicModelMultipleChoiceField( rack_id = DynamicModelMultipleChoiceField(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
@ -641,8 +601,7 @@ class CableFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
null_option='None', null_option='None',
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, }
fetch_trigger='open'
) )
type = forms.MultipleChoiceField( type = forms.MultipleChoiceField(
choices=add_blank_choice(CableTypeChoices), choices=add_blank_choice(CableTypeChoices),
@ -665,8 +624,7 @@ class CableFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
'tenant_id': '$tenant_id', 'tenant_id': '$tenant_id',
'rack_id': '$rack_id', 'rack_id': '$rack_id',
}, },
label=_('Device'), label=_('Device')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -680,14 +638,12 @@ class PowerPanelFilterForm(CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -696,8 +652,7 @@ class PowerPanelFilterForm(CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'group_id': '$site_group_id', 'group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
location_id = DynamicModelMultipleChoiceField( location_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
@ -706,8 +661,7 @@ class PowerPanelFilterForm(CustomFieldModelFilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Location'), label=_('Location')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -723,14 +677,12 @@ class PowerFeedFilterForm(CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -738,8 +690,7 @@ class PowerFeedFilterForm(CustomFieldModelFilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
power_panel_id = DynamicModelMultipleChoiceField( power_panel_id = DynamicModelMultipleChoiceField(
queryset=PowerPanel.objects.all(), queryset=PowerPanel.objects.all(),
@ -748,8 +699,7 @@ class PowerFeedFilterForm(CustomFieldModelFilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Power panel'), label=_('Power panel')
fetch_trigger='open'
) )
rack_id = DynamicModelMultipleChoiceField( rack_id = DynamicModelMultipleChoiceField(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
@ -758,8 +708,7 @@ class PowerFeedFilterForm(CustomFieldModelFilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Rack'), label=_('Rack')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=PowerFeedStatusChoices, choices=PowerFeedStatusChoices,
@ -990,8 +939,7 @@ class InventoryItemFilterForm(DeviceComponentFilterForm):
manufacturer_id = DynamicModelMultipleChoiceField( manufacturer_id = DynamicModelMultipleChoiceField(
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
required=False, required=False,
label=_('Manufacturer'), label=_('Manufacturer')
fetch_trigger='open'
) )
serial = forms.CharField( serial = forms.CharField(
required=False required=False
@ -1016,8 +964,7 @@ class ConsoleConnectionFilterForm(FilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -1025,8 +972,7 @@ class ConsoleConnectionFilterForm(FilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
device_id = DynamicModelMultipleChoiceField( device_id = DynamicModelMultipleChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
@ -1034,8 +980,7 @@ class ConsoleConnectionFilterForm(FilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Device'), label=_('Device')
fetch_trigger='open'
) )
@ -1043,8 +988,7 @@ class PowerConnectionFilterForm(FilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -1052,8 +996,7 @@ class PowerConnectionFilterForm(FilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
device_id = DynamicModelMultipleChoiceField( device_id = DynamicModelMultipleChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
@ -1061,8 +1004,7 @@ class PowerConnectionFilterForm(FilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Device'), label=_('Device')
fetch_trigger='open'
) )
@ -1070,8 +1012,7 @@ class InterfaceConnectionFilterForm(FilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -1079,8 +1020,7 @@ class InterfaceConnectionFilterForm(FilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
device_id = DynamicModelMultipleChoiceField( device_id = DynamicModelMultipleChoiceField(
queryset=Device.objects.all(), queryset=Device.objects.all(),
@ -1088,6 +1028,5 @@ class InterfaceConnectionFilterForm(FilterForm):
query_params={ query_params={
'site_id': '$site_id' 'site_id': '$site_id'
}, },
label=_('Device'), label=_('Device')
fetch_trigger='open'
) )

View File

@ -301,16 +301,14 @@ class RackReservationForm(TenancyForm, CustomFieldModelForm):
required=False, required=False,
initial_params={ initial_params={
'sites': '$site' 'sites': '$site'
}, }
fetch_trigger='open'
) )
site_group = DynamicModelChoiceField( site_group = DynamicModelChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
initial_params={ initial_params={
'sites': '$site' 'sites': '$site'
}, }
fetch_trigger='open'
) )
site = DynamicModelChoiceField( site = DynamicModelChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -318,24 +316,21 @@ class RackReservationForm(TenancyForm, CustomFieldModelForm):
query_params={ query_params={
'region_id': '$region', 'region_id': '$region',
'group_id': '$site_group', 'group_id': '$site_group',
}, }
fetch_trigger='open'
) )
location = DynamicModelChoiceField( location = DynamicModelChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
required=False, required=False,
query_params={ query_params={
'site_id': '$site' 'site_id': '$site'
}, }
fetch_trigger='open'
) )
rack = DynamicModelChoiceField( rack = DynamicModelChoiceField(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
query_params={ query_params={
'site_id': '$site', 'site_id': '$site',
'location_id': '$location', 'location_id': '$location',
}, }
fetch_trigger='open'
) )
units = NumericArrayField( units = NumericArrayField(
base_field=forms.IntegerField(), base_field=forms.IntegerField(),
@ -349,8 +344,7 @@ class RackReservationForm(TenancyForm, CustomFieldModelForm):
) )
tags = DynamicModelMultipleChoiceField( tags = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
required=False, required=False
fetch_trigger='open'
) )
class Meta: class Meta:

View File

@ -164,69 +164,58 @@ class ConfigContextFilterForm(FilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Regions'), label=_('Regions')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site groups'), label=_('Site groups')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
required=False, required=False,
label=_('Sites'), label=_('Sites')
fetch_trigger='open'
) )
device_type_id = DynamicModelMultipleChoiceField( device_type_id = DynamicModelMultipleChoiceField(
queryset=DeviceType.objects.all(), queryset=DeviceType.objects.all(),
required=False, required=False,
label=_('Device types'), label=_('Device types')
fetch_trigger='open'
) )
role_id = DynamicModelMultipleChoiceField( role_id = DynamicModelMultipleChoiceField(
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
required=False, required=False,
label=_('Roles'), label=_('Roles')
fetch_trigger='open'
) )
platform_id = DynamicModelMultipleChoiceField( platform_id = DynamicModelMultipleChoiceField(
queryset=Platform.objects.all(), queryset=Platform.objects.all(),
required=False, required=False,
label=_('Platforms'), label=_('Platforms')
fetch_trigger='open'
) )
cluster_group_id = DynamicModelMultipleChoiceField( cluster_group_id = DynamicModelMultipleChoiceField(
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
required=False, required=False,
label=_('Cluster groups'), label=_('Cluster groups')
fetch_trigger='open'
) )
cluster_id = DynamicModelMultipleChoiceField( cluster_id = DynamicModelMultipleChoiceField(
queryset=Cluster.objects.all(), queryset=Cluster.objects.all(),
required=False, required=False,
label=_('Clusters'), label=_('Clusters')
fetch_trigger='open'
) )
tenant_group_id = DynamicModelMultipleChoiceField( tenant_group_id = DynamicModelMultipleChoiceField(
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
required=False, required=False,
label=_('Tenant groups'), label=_('Tenant groups')
fetch_trigger='open'
) )
tenant_id = DynamicModelMultipleChoiceField( tenant_id = DynamicModelMultipleChoiceField(
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),
required=False, required=False,
label=_('Tenant'), label=_('Tenant')
fetch_trigger='open'
) )
tag = DynamicModelMultipleChoiceField( tag = DynamicModelMultipleChoiceField(
queryset=Tag.objects.all(), queryset=Tag.objects.all(),
to_field_name='slug', to_field_name='slug',
required=False, required=False,
label=_('Tags'), label=_('Tags')
fetch_trigger='open'
) )
@ -263,8 +252,7 @@ class JournalEntryFilterForm(FilterForm):
label=_('User'), label=_('User'),
widget=APISelectMultiple( widget=APISelectMultiple(
api_url='/api/users/users/', api_url='/api/users/users/',
), )
fetch_trigger='open'
) )
assigned_object_type_id = DynamicModelMultipleChoiceField( assigned_object_type_id = DynamicModelMultipleChoiceField(
queryset=ContentType.objects.all(), queryset=ContentType.objects.all(),
@ -272,8 +260,7 @@ class JournalEntryFilterForm(FilterForm):
label=_('Object Type'), label=_('Object Type'),
widget=APISelectMultiple( widget=APISelectMultiple(
api_url='/api/extras/content-types/', api_url='/api/extras/content-types/',
), )
fetch_trigger='open'
) )
kind = forms.ChoiceField( kind = forms.ChoiceField(
choices=add_blank_choice(JournalEntryKindChoices), choices=add_blank_choice(JournalEntryKindChoices),
@ -310,8 +297,7 @@ class ObjectChangeFilterForm(FilterForm):
label=_('User'), label=_('User'),
widget=APISelectMultiple( widget=APISelectMultiple(
api_url='/api/users/users/', api_url='/api/users/users/',
), )
fetch_trigger='open'
) )
changed_object_type_id = DynamicModelMultipleChoiceField( changed_object_type_id = DynamicModelMultipleChoiceField(
queryset=ContentType.objects.all(), queryset=ContentType.objects.all(),
@ -319,6 +305,5 @@ class ObjectChangeFilterForm(FilterForm):
label=_('Object Type'), label=_('Object Type'),
widget=APISelectMultiple( widget=APISelectMultiple(
api_url='/api/extras/content-types/', api_url='/api/extras/content-types/',
), )
fetch_trigger='open'
) )

View File

@ -48,14 +48,12 @@ class VRFFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
import_target_id = DynamicModelMultipleChoiceField( import_target_id = DynamicModelMultipleChoiceField(
queryset=RouteTarget.objects.all(), queryset=RouteTarget.objects.all(),
required=False, required=False,
label=_('Import targets'), label=_('Import targets')
fetch_trigger='open'
) )
export_target_id = DynamicModelMultipleChoiceField( export_target_id = DynamicModelMultipleChoiceField(
queryset=RouteTarget.objects.all(), queryset=RouteTarget.objects.all(),
required=False, required=False,
label=_('Export targets'), label=_('Export targets')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -70,14 +68,12 @@ class RouteTargetFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
importing_vrf_id = DynamicModelMultipleChoiceField( importing_vrf_id = DynamicModelMultipleChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Imported by VRF'), label=_('Imported by VRF')
fetch_trigger='open'
) )
exporting_vrf_id = DynamicModelMultipleChoiceField( exporting_vrf_id = DynamicModelMultipleChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Exported by VRF'), label=_('Exported by VRF')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -110,8 +106,7 @@ class AggregateFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
rir_id = DynamicModelMultipleChoiceField( rir_id = DynamicModelMultipleChoiceField(
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
required=False, required=False,
label=_('RIR'), label=_('RIR')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -127,14 +122,12 @@ class ASNFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
rir_id = DynamicModelMultipleChoiceField( rir_id = DynamicModelMultipleChoiceField(
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
required=False, required=False,
label=_('RIR'), label=_('RIR')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
required=False, required=False,
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
@ -180,14 +173,12 @@ class PrefixFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Assigned VRF'), label=_('Assigned VRF'),
null_option='Global', null_option='Global'
fetch_trigger='open'
) )
present_in_vrf_id = DynamicModelChoiceField( present_in_vrf_id = DynamicModelChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Present in VRF'), label=_('Present in VRF')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=PrefixStatusChoices, choices=PrefixStatusChoices,
@ -197,14 +188,12 @@ class PrefixFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -213,15 +202,13 @@ class PrefixFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'region_id': '$region_id' 'region_id': '$region_id'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
role_id = DynamicModelMultipleChoiceField( role_id = DynamicModelMultipleChoiceField(
queryset=Role.objects.all(), queryset=Role.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Role'), label=_('Role')
fetch_trigger='open'
) )
is_pool = forms.NullBooleanField( is_pool = forms.NullBooleanField(
required=False, required=False,
@ -257,8 +244,7 @@ class IPRangeFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Assigned VRF'), label=_('Assigned VRF'),
null_option='Global', null_option='Global'
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=PrefixStatusChoices, choices=PrefixStatusChoices,
@ -269,8 +255,7 @@ class IPRangeFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
queryset=Role.objects.all(), queryset=Role.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Role'), label=_('Role')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -308,14 +293,12 @@ class IPAddressFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Assigned VRF'), label=_('Assigned VRF'),
null_option='Global', null_option='Global'
fetch_trigger='open'
) )
present_in_vrf_id = DynamicModelChoiceField( present_in_vrf_id = DynamicModelChoiceField(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
required=False, required=False,
label=_('Present in VRF'), label=_('Present in VRF')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=IPAddressStatusChoices, choices=IPAddressStatusChoices,
@ -376,32 +359,27 @@ class VLANGroupFilterForm(CustomFieldModelFilterForm):
region = DynamicModelMultipleChoiceField( region = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
sitegroup = DynamicModelMultipleChoiceField( sitegroup = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site = DynamicModelMultipleChoiceField( site = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
required=False, required=False,
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
location = DynamicModelMultipleChoiceField( location = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), queryset=Location.objects.all(),
required=False, required=False,
label=_('Location'), label=_('Location')
fetch_trigger='open'
) )
rack = DynamicModelMultipleChoiceField( rack = DynamicModelMultipleChoiceField(
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
required=False, required=False,
label=_('Rack'), label=_('Rack')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -417,14 +395,12 @@ class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -433,8 +409,7 @@ class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'region': '$region' 'region': '$region'
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
group_id = DynamicModelMultipleChoiceField( group_id = DynamicModelMultipleChoiceField(
queryset=VLANGroup.objects.all(), queryset=VLANGroup.objects.all(),
@ -443,8 +418,7 @@ class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
query_params={ query_params={
'region': '$region' 'region': '$region'
}, },
label=_('VLAN group'), label=_('VLAN group')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=VLANStatusChoices, choices=VLANStatusChoices,
@ -455,8 +429,7 @@ class VLANFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
queryset=Role.objects.all(), queryset=Role.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Role'), label=_('Role')
fetch_trigger='open'
) )
vid = forms.IntegerField( vid = forms.IntegerField(
required=False, required=False,

Binary file not shown.

View File

@ -251,7 +251,7 @@ export class APISelect {
} else if (collapse !== null) { } else if (collapse !== null) {
this.trigger = 'collapse'; this.trigger = 'collapse';
} else { } else {
this.trigger = 'load'; this.trigger = 'open';
} }
switch (this.trigger) { switch (this.trigger) {

View File

@ -22,8 +22,7 @@ class TenantGroupFilterForm(CustomFieldModelFilterForm):
parent_id = DynamicModelMultipleChoiceField( parent_id = DynamicModelMultipleChoiceField(
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
required=False, required=False,
label=_('Parent group'), label=_('Parent group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -38,8 +37,7 @@ class TenantFilterForm(CustomFieldModelFilterForm):
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Group'), label=_('Group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -53,8 +51,7 @@ class ContactGroupFilterForm(CustomFieldModelFilterForm):
parent_id = DynamicModelMultipleChoiceField( parent_id = DynamicModelMultipleChoiceField(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
required=False, required=False,
label=_('Parent group'), label=_('Parent group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -74,7 +71,6 @@ class ContactFilterForm(CustomFieldModelFilterForm):
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Group'), label=_('Group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)

View File

@ -33,8 +33,7 @@ class TenancyFilterForm(forms.Form):
queryset=TenantGroup.objects.all(), queryset=TenantGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Tenant group'), label=_('Tenant group')
fetch_trigger='open'
) )
tenant_id = DynamicModelMultipleChoiceField( tenant_id = DynamicModelMultipleChoiceField(
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),
@ -43,6 +42,5 @@ class TenancyFilterForm(forms.Form):
query_params={ query_params={
'group_id': '$tenant_group_id' 'group_id': '$tenant_group_id'
}, },
label=_('Tenant'), label=_('Tenant')
fetch_trigger='open'
) )

View File

@ -399,8 +399,8 @@ class DynamicModelChoiceMixin:
filter = django_filters.ModelChoiceFilter filter = django_filters.ModelChoiceFilter
widget = widgets.APISelect widget = widgets.APISelect
def __init__(self, query_params=None, initial_params=None, null_option=None, disabled_indicator=None, fetch_trigger=None, def __init__(self, query_params=None, initial_params=None, null_option=None, disabled_indicator=None,
empty_label=None, *args, **kwargs): fetch_trigger=None, empty_label=None, *args, **kwargs):
self.query_params = query_params or {} self.query_params = query_params or {}
self.initial_params = initial_params or {} self.initial_params = initial_params or {}
self.null_option = null_option self.null_option = null_option

View File

@ -40,20 +40,17 @@ class ClusterFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
type_id = DynamicModelMultipleChoiceField( type_id = DynamicModelMultipleChoiceField(
queryset=ClusterType.objects.all(), queryset=ClusterType.objects.all(),
required=False, required=False,
label=_('Type'), label=_('Type')
fetch_trigger='open'
) )
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -63,15 +60,13 @@ class ClusterFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
'region_id': '$region_id', 'region_id': '$region_id',
'site_group_id': '$site_group_id', 'site_group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
group_id = DynamicModelMultipleChoiceField( group_id = DynamicModelMultipleChoiceField(
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Group'), label=_('Group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -89,33 +84,28 @@ class VirtualMachineFilterForm(LocalConfigContextFilterForm, TenancyFilterForm,
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Cluster group'), label=_('Cluster group')
fetch_trigger='open'
) )
cluster_type_id = DynamicModelMultipleChoiceField( cluster_type_id = DynamicModelMultipleChoiceField(
queryset=ClusterType.objects.all(), queryset=ClusterType.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Cluster type'), label=_('Cluster type')
fetch_trigger='open'
) )
cluster_id = DynamicModelMultipleChoiceField( cluster_id = DynamicModelMultipleChoiceField(
queryset=Cluster.objects.all(), queryset=Cluster.objects.all(),
required=False, required=False,
label=_('Cluster'), label=_('Cluster')
fetch_trigger='open'
) )
region_id = DynamicModelMultipleChoiceField( region_id = DynamicModelMultipleChoiceField(
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
label=_('Region'), label=_('Region')
fetch_trigger='open'
) )
site_group_id = DynamicModelMultipleChoiceField( site_group_id = DynamicModelMultipleChoiceField(
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
label=_('Site group'), label=_('Site group')
fetch_trigger='open'
) )
site_id = DynamicModelMultipleChoiceField( site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), queryset=Site.objects.all(),
@ -125,8 +115,7 @@ class VirtualMachineFilterForm(LocalConfigContextFilterForm, TenancyFilterForm,
'region_id': '$region_id', 'region_id': '$region_id',
'group_id': '$site_group_id', 'group_id': '$site_group_id',
}, },
label=_('Site'), label=_('Site')
fetch_trigger='open'
) )
role_id = DynamicModelMultipleChoiceField( role_id = DynamicModelMultipleChoiceField(
queryset=DeviceRole.objects.all(), queryset=DeviceRole.objects.all(),
@ -135,8 +124,7 @@ class VirtualMachineFilterForm(LocalConfigContextFilterForm, TenancyFilterForm,
query_params={ query_params={
'vm_role': "True" 'vm_role': "True"
}, },
label=_('Role'), label=_('Role')
fetch_trigger='open'
) )
status = forms.MultipleChoiceField( status = forms.MultipleChoiceField(
choices=VirtualMachineStatusChoices, choices=VirtualMachineStatusChoices,
@ -147,8 +135,7 @@ class VirtualMachineFilterForm(LocalConfigContextFilterForm, TenancyFilterForm,
queryset=Platform.objects.all(), queryset=Platform.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Platform'), label=_('Platform')
fetch_trigger='open'
) )
mac_address = forms.CharField( mac_address = forms.CharField(
required=False, required=False,
@ -174,8 +161,7 @@ class VMInterfaceFilterForm(CustomFieldModelFilterForm):
cluster_id = DynamicModelMultipleChoiceField( cluster_id = DynamicModelMultipleChoiceField(
queryset=Cluster.objects.all(), queryset=Cluster.objects.all(),
required=False, required=False,
label=_('Cluster'), label=_('Cluster')
fetch_trigger='open'
) )
virtual_machine_id = DynamicModelMultipleChoiceField( virtual_machine_id = DynamicModelMultipleChoiceField(
queryset=VirtualMachine.objects.all(), queryset=VirtualMachine.objects.all(),
@ -183,8 +169,7 @@ class VMInterfaceFilterForm(CustomFieldModelFilterForm):
query_params={ query_params={
'cluster_id': '$cluster_id' 'cluster_id': '$cluster_id'
}, },
label=_('Virtual machine'), label=_('Virtual machine')
fetch_trigger='open'
) )
enabled = forms.NullBooleanField( enabled = forms.NullBooleanField(
required=False, required=False,

View File

@ -19,8 +19,7 @@ class WirelessLANGroupFilterForm(CustomFieldModelFilterForm):
parent_id = DynamicModelMultipleChoiceField( parent_id = DynamicModelMultipleChoiceField(
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
required=False, required=False,
label=_('Parent group'), label=_('Parent group')
fetch_trigger='open'
) )
tag = TagFilterField(model) tag = TagFilterField(model)
@ -39,8 +38,7 @@ class WirelessLANFilterForm(CustomFieldModelFilterForm):
queryset=WirelessLANGroup.objects.all(), queryset=WirelessLANGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
label=_('Group'), label=_('Group')
fetch_trigger='open'
) )
auth_type = forms.ChoiceField( auth_type = forms.ChoiceField(
required=False, required=False,