mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Clean up object filter forms
This commit is contained in:
@ -107,9 +107,9 @@ class ProviderBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBu
|
|||||||
class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = Provider
|
model = Provider
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['region_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['asn', 'tag'],
|
['asn'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -122,11 +122,18 @@ class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
label=_('Region'),
|
label=_('Region'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
)
|
)
|
||||||
|
site_group_id = DynamicModelMultipleChoiceField(
|
||||||
|
queryset=SiteGroup.objects.all(),
|
||||||
|
required=False,
|
||||||
|
label=_('Site group'),
|
||||||
|
fetch_trigger='open'
|
||||||
|
)
|
||||||
site_id = DynamicModelMultipleChoiceField(
|
site_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'site_group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
@ -202,7 +209,10 @@ class ProviderNetworkBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomField
|
|||||||
|
|
||||||
class ProviderNetworkFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class ProviderNetworkFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = ProviderNetwork
|
model = ProviderNetwork
|
||||||
field_order = ['q', 'provider_id', 'tag']
|
field_groups = (
|
||||||
|
('q', 'tag'),
|
||||||
|
('provider_id',),
|
||||||
|
)
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
@ -368,17 +378,12 @@ class CircuitBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBul
|
|||||||
|
|
||||||
class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = Circuit
|
model = Circuit
|
||||||
field_order = [
|
|
||||||
'q', 'type_id', 'provider_id', 'provider_network_id', 'status', 'region_id', 'site_id', 'tenant_group_id',
|
|
||||||
'tenant_id', 'commit_rate',
|
|
||||||
]
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['type_id', 'status', 'commit_rate'],
|
|
||||||
['provider_id', 'provider_network_id'],
|
['provider_id', 'provider_network_id'],
|
||||||
['region_id', 'site_id'],
|
['type_id', 'status', 'commit_rate'],
|
||||||
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -417,11 +422,18 @@ class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilte
|
|||||||
label=_('Region'),
|
label=_('Region'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
)
|
)
|
||||||
|
site_group_id = DynamicModelMultipleChoiceField(
|
||||||
|
queryset=SiteGroup.objects.all(),
|
||||||
|
required=False,
|
||||||
|
label=_('Site group'),
|
||||||
|
fetch_trigger='open'
|
||||||
|
)
|
||||||
site_id = DynamicModelMultipleChoiceField(
|
site_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'site_group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
|
@ -58,11 +58,6 @@ class DeviceComponentFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
field_order = [
|
field_order = [
|
||||||
'q', 'name', 'label', 'region_id', 'site_group_id', 'site_id',
|
'q', 'name', 'label', 'region_id', 'site_group_id', 'site_id',
|
||||||
]
|
]
|
||||||
field_groups = [
|
|
||||||
['q'],
|
|
||||||
['name', 'label'],
|
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
|
||||||
]
|
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
@ -90,7 +85,8 @@ class DeviceComponentFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
@ -250,12 +246,19 @@ class RegionFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
model = Site
|
model = Site
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q'],
|
||||||
|
['parent_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
label=_('Search')
|
label=_('Search')
|
||||||
)
|
)
|
||||||
|
parent_id = DynamicModelMultipleChoiceField(
|
||||||
|
queryset=Region.objects.all(),
|
||||||
|
required=False,
|
||||||
|
label=_('Parent region'),
|
||||||
|
fetch_trigger='open'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -311,12 +314,19 @@ class SiteGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
model = SiteGroup
|
model = SiteGroup
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q'],
|
||||||
|
['parent_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
label=_('Search')
|
label=_('Search')
|
||||||
)
|
)
|
||||||
|
parent_id = DynamicModelMultipleChoiceField(
|
||||||
|
queryset=SiteGroup.objects.all(),
|
||||||
|
required=False,
|
||||||
|
label=_('Parent group'),
|
||||||
|
fetch_trigger='open'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -476,10 +486,9 @@ class SiteFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFo
|
|||||||
model = Site
|
model = Site
|
||||||
field_order = ['q', 'status', 'region_id', 'tenant_group_id', 'tenant_id']
|
field_order = ['q', 'status', 'region_id', 'tenant_group_id', 'tenant_id']
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['status', 'region_id'],
|
['status', 'region_id', 'group_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -500,7 +509,7 @@ class SiteFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFo
|
|||||||
group_id = DynamicModelMultipleChoiceField(
|
group_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=SiteGroup.objects.all(),
|
queryset=SiteGroup.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
label=_('Group'),
|
label=_('Site group'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
)
|
)
|
||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
@ -607,11 +616,18 @@ class LocationFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
label=_('Region'),
|
label=_('Region'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
)
|
)
|
||||||
|
site_group_id = DynamicModelMultipleChoiceField(
|
||||||
|
queryset=SiteGroup.objects.all(),
|
||||||
|
required=False,
|
||||||
|
label=_('Site group'),
|
||||||
|
fetch_trigger='open'
|
||||||
|
)
|
||||||
site_id = DynamicModelMultipleChoiceField(
|
site_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
@ -897,9 +913,10 @@ class RackFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterFo
|
|||||||
model = Rack
|
model = Rack
|
||||||
field_order = ['q', 'region_id', 'site_id', 'location_id', 'status', 'role_id', 'tenant_group_id', 'tenant_id']
|
field_order = ['q', 'region_id', 'site_id', 'location_id', 'status', 'role_id', 'tenant_group_id', 'tenant_id']
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['status', 'role_id'],
|
|
||||||
['region_id', 'site_id', 'location_id'],
|
['region_id', 'site_id', 'location_id'],
|
||||||
|
['status', 'role_id'],
|
||||||
|
['type', 'width', 'asset_tag'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
@ -1134,9 +1151,10 @@ class RackReservationFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldMo
|
|||||||
model = RackReservation
|
model = RackReservation
|
||||||
field_order = ['q', 'region_id', 'site_id', 'location_id', 'user_id', 'tenant_group_id', 'tenant_id']
|
field_order = ['q', 'region_id', 'site_id', 'location_id', 'user_id', 'tenant_group_id', 'tenant_id']
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
|
['user_id'],
|
||||||
['region_id', 'site_id', 'location_id'],
|
['region_id', 'site_id', 'location_id'],
|
||||||
['user_id', 'tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -1155,7 +1173,7 @@ class RackReservationFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldMo
|
|||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id'
|
||||||
},
|
},
|
||||||
label=_('Region'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
)
|
)
|
||||||
location_id = DynamicModelMultipleChoiceField(
|
location_id = DynamicModelMultipleChoiceField(
|
||||||
@ -1292,12 +1310,9 @@ class DeviceTypeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModel
|
|||||||
class DeviceTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class DeviceTypeFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['manufacturer_id', 'subdevice_role'],
|
['manufacturer_id', 'subdevice_role'],
|
||||||
['console_ports', 'console_server_ports'],
|
['console_ports', 'console_server_ports', 'power_ports', 'power_outlets', 'interfaces', 'pass_through_ports'],
|
||||||
['power_ports', 'power_outlets'],
|
|
||||||
['interfaces', 'pass_through_ports'],
|
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -2526,12 +2541,15 @@ class DeviceFilterForm(BootstrapMixin, LocalConfigContextFilterForm, TenancyFilt
|
|||||||
'tenant_id', 'manufacturer_id', 'device_type_id', 'asset_tag', 'mac_address', 'has_primary_ip',
|
'tenant_id', 'manufacturer_id', 'device_type_id', 'asset_tag', 'mac_address', 'has_primary_ip',
|
||||||
]
|
]
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['region_id', 'site_id', 'location_id', 'rack_id'],
|
['region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id'],
|
||||||
['status', 'role_id', 'asset_tag'],
|
['status', 'role_id', 'asset_tag', 'mac_address'],
|
||||||
|
['manufacturer_id', 'device_type_id', 'platform_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
['manufacturer_id', 'device_type_id'],
|
[
|
||||||
['mac_address', 'has_primary_ip'],
|
'has_primary_ip', 'virtual_chassis_member', 'console_ports', 'console_server_ports', 'power_ports',
|
||||||
|
'power_outlets', 'interfaces', 'pass_through_ports', 'local_context_data',
|
||||||
|
],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -2547,7 +2565,8 @@ class DeviceFilterForm(BootstrapMixin, LocalConfigContextFilterForm, TenancyFilt
|
|||||||
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(),
|
||||||
@ -2723,11 +2742,9 @@ class DeviceBulkAddComponentForm(BootstrapMixin, CustomFieldsMixin, ComponentFor
|
|||||||
class ConsolePortFilterForm(DeviceComponentFilterForm):
|
class ConsolePortFilterForm(DeviceComponentFilterForm):
|
||||||
model = ConsolePort
|
model = ConsolePort
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label'],
|
['name', 'label', 'type', 'speed'],
|
||||||
['type', 'speed'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=ConsolePortTypeChoices,
|
choices=ConsolePortTypeChoices,
|
||||||
@ -2831,11 +2848,9 @@ class ConsolePortCSVForm(CustomFieldModelCSVForm):
|
|||||||
class ConsoleServerPortFilterForm(DeviceComponentFilterForm):
|
class ConsoleServerPortFilterForm(DeviceComponentFilterForm):
|
||||||
model = ConsoleServerPort
|
model = ConsoleServerPort
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label'],
|
['name', 'label', 'type', 'speed'],
|
||||||
['type', 'speed'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=ConsolePortTypeChoices,
|
choices=ConsolePortTypeChoices,
|
||||||
@ -2939,10 +2954,9 @@ class ConsoleServerPortCSVForm(CustomFieldModelCSVForm):
|
|||||||
class PowerPortFilterForm(DeviceComponentFilterForm):
|
class PowerPortFilterForm(DeviceComponentFilterForm):
|
||||||
model = PowerPort
|
model = PowerPort
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label', 'type'],
|
['name', 'label', 'type'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['tag'],
|
|
||||||
]
|
]
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=PowerPortTypeChoices,
|
choices=PowerPortTypeChoices,
|
||||||
@ -3045,10 +3059,9 @@ class PowerPortCSVForm(CustomFieldModelCSVForm):
|
|||||||
class PowerOutletFilterForm(DeviceComponentFilterForm):
|
class PowerOutletFilterForm(DeviceComponentFilterForm):
|
||||||
model = PowerOutlet
|
model = PowerOutlet
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label', 'type'],
|
['name', 'label', 'type'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['tag'],
|
|
||||||
]
|
]
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=PowerOutletTypeChoices,
|
choices=PowerOutletTypeChoices,
|
||||||
@ -3218,11 +3231,9 @@ class PowerOutletCSVForm(CustomFieldModelCSVForm):
|
|||||||
class InterfaceFilterForm(DeviceComponentFilterForm):
|
class InterfaceFilterForm(DeviceComponentFilterForm):
|
||||||
model = Interface
|
model = Interface
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label', 'type', 'enabled'],
|
['name', 'label', 'type', 'enabled', 'mgmt_only', 'mac_address'],
|
||||||
['mgmt_only', 'mac_address'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
|
||||||
['tag'],
|
|
||||||
]
|
]
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=InterfaceTypeChoices,
|
choices=InterfaceTypeChoices,
|
||||||
@ -3578,10 +3589,9 @@ class InterfaceCSVForm(CustomFieldModelCSVForm):
|
|||||||
|
|
||||||
class FrontPortFilterForm(DeviceComponentFilterForm):
|
class FrontPortFilterForm(DeviceComponentFilterForm):
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label', 'type', 'color'],
|
['name', 'label', 'type', 'color'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
model = FrontPort
|
model = FrontPort
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
@ -3768,10 +3778,9 @@ class FrontPortCSVForm(CustomFieldModelCSVForm):
|
|||||||
class RearPortFilterForm(DeviceComponentFilterForm):
|
class RearPortFilterForm(DeviceComponentFilterForm):
|
||||||
model = RearPort
|
model = RearPort
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label', 'type', 'color'],
|
['name', 'label', 'type', 'color'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=PortTypeChoices,
|
choices=PortTypeChoices,
|
||||||
@ -3870,10 +3879,9 @@ class RearPortCSVForm(CustomFieldModelCSVForm):
|
|||||||
class DeviceBayFilterForm(DeviceComponentFilterForm):
|
class DeviceBayFilterForm(DeviceComponentFilterForm):
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label'],
|
['name', 'label'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|
||||||
@ -4122,11 +4130,9 @@ class InventoryItemBulkEditForm(
|
|||||||
class InventoryItemFilterForm(DeviceComponentFilterForm):
|
class InventoryItemFilterForm(DeviceComponentFilterForm):
|
||||||
model = InventoryItem
|
model = InventoryItem
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['name', 'label', 'manufacturer_id'],
|
['name', 'label', 'manufacturer_id', 'serial', 'asset_tag', 'discovered'],
|
||||||
['serial', 'asset_tag', 'discovered'],
|
['region_id', 'site_group_id', 'site_id', 'device_id'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
manufacturer_id = DynamicModelMultipleChoiceField(
|
manufacturer_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Manufacturer.objects.all(),
|
queryset=Manufacturer.objects.all(),
|
||||||
@ -4598,11 +4604,10 @@ class CableBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkE
|
|||||||
class CableFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class CableFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = Cable
|
model = Cable
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
|
['site_id', 'rack_id', 'device_id'],
|
||||||
['type', 'status', 'color'],
|
['type', 'status', 'color'],
|
||||||
['device_id', 'rack_id'],
|
['tenant_id'],
|
||||||
['region_id', 'site_id', 'tenant_id'],
|
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -4672,11 +4677,6 @@ class CableFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
#
|
#
|
||||||
|
|
||||||
class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form):
|
class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form):
|
||||||
q = forms.CharField(
|
|
||||||
required=False,
|
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
|
||||||
label=_('Search')
|
|
||||||
)
|
|
||||||
region_id = DynamicModelMultipleChoiceField(
|
region_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
@ -4704,11 +4704,6 @@ class ConsoleConnectionFilterForm(BootstrapMixin, forms.Form):
|
|||||||
|
|
||||||
|
|
||||||
class PowerConnectionFilterForm(BootstrapMixin, forms.Form):
|
class PowerConnectionFilterForm(BootstrapMixin, forms.Form):
|
||||||
q = forms.CharField(
|
|
||||||
required=False,
|
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
|
||||||
label=_('Search')
|
|
||||||
)
|
|
||||||
region_id = DynamicModelMultipleChoiceField(
|
region_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
@ -4736,11 +4731,6 @@ class PowerConnectionFilterForm(BootstrapMixin, forms.Form):
|
|||||||
|
|
||||||
|
|
||||||
class InterfaceConnectionFilterForm(BootstrapMixin, forms.Form):
|
class InterfaceConnectionFilterForm(BootstrapMixin, forms.Form):
|
||||||
q = forms.CharField(
|
|
||||||
required=False,
|
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
|
||||||
label=_('Search')
|
|
||||||
)
|
|
||||||
region_id = DynamicModelMultipleChoiceField(
|
region_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Region.objects.all(),
|
queryset=Region.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
@ -5010,10 +5000,9 @@ class VirtualChassisFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldMod
|
|||||||
model = VirtualChassis
|
model = VirtualChassis
|
||||||
field_order = ['q', 'region_id', 'site_group_id', 'site_id', 'tenant_group_id', 'tenant_id']
|
field_order = ['q', 'region_id', 'site_group_id', 'site_id', 'tenant_group_id', 'tenant_id']
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -5036,7 +5025,8 @@ class VirtualChassisFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldMod
|
|||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
@ -5159,6 +5149,10 @@ class PowerPanelBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModel
|
|||||||
|
|
||||||
class PowerPanelFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class PowerPanelFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = PowerPanel
|
model = PowerPanel
|
||||||
|
field_groups = (
|
||||||
|
('q', 'tag'),
|
||||||
|
('region_id', 'site_group_id', 'site_id', 'location_id')
|
||||||
|
)
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
@ -5180,7 +5174,8 @@ class PowerPanelFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
|||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
@ -5402,12 +5397,10 @@ class PowerFeedBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
|
|||||||
class PowerFeedFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class PowerFeedFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = PowerFeed
|
model = PowerFeed
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['power_panel_id', 'rack_id'],
|
['power_panel_id', 'rack_id'],
|
||||||
['type', 'supply', 'max_utilization'],
|
['status', 'type', 'supply', 'phase', 'voltage', 'amperage', 'max_utilization'],
|
||||||
['phase', 'voltage', 'amperage'],
|
|
||||||
['status', 'tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
|
@ -88,12 +88,14 @@ class CustomFieldFilterForm(BootstrapMixin, forms.Form):
|
|||||||
)
|
)
|
||||||
content_types = ContentTypeMultipleChoiceField(
|
content_types = ContentTypeMultipleChoiceField(
|
||||||
queryset=ContentType.objects.all(),
|
queryset=ContentType.objects.all(),
|
||||||
limit_choices_to=FeatureQuery('custom_fields')
|
limit_choices_to=FeatureQuery('custom_fields'),
|
||||||
|
required=False
|
||||||
)
|
)
|
||||||
type = forms.MultipleChoiceField(
|
type = forms.MultipleChoiceField(
|
||||||
choices=CustomFieldTypeChoices,
|
choices=CustomFieldTypeChoices,
|
||||||
required=False,
|
required=False,
|
||||||
widget=StaticSelectMultiple()
|
widget=StaticSelectMultiple(),
|
||||||
|
label=_('Field type')
|
||||||
)
|
)
|
||||||
weight = forms.IntegerField(
|
weight = forms.IntegerField(
|
||||||
required=False
|
required=False
|
||||||
@ -174,8 +176,7 @@ class CustomLinkBulkEditForm(BootstrapMixin, BulkEditForm):
|
|||||||
class CustomLinkFilterForm(BootstrapMixin, forms.Form):
|
class CustomLinkFilterForm(BootstrapMixin, forms.Form):
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q'],
|
||||||
['content_type'],
|
['content_type', 'weight', 'new_window'],
|
||||||
['weight', 'new_window'],
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -184,7 +185,8 @@ class CustomLinkFilterForm(BootstrapMixin, forms.Form):
|
|||||||
)
|
)
|
||||||
content_type = ContentTypeChoiceField(
|
content_type = ContentTypeChoiceField(
|
||||||
queryset=ContentType.objects.all(),
|
queryset=ContentType.objects.all(),
|
||||||
limit_choices_to=FeatureQuery('custom_fields')
|
limit_choices_to=FeatureQuery('custom_fields'),
|
||||||
|
required=False
|
||||||
)
|
)
|
||||||
weight = forms.IntegerField(
|
weight = forms.IntegerField(
|
||||||
required=False
|
required=False
|
||||||
@ -265,8 +267,7 @@ class ExportTemplateBulkEditForm(BootstrapMixin, BulkEditForm):
|
|||||||
class ExportTemplateFilterForm(BootstrapMixin, forms.Form):
|
class ExportTemplateFilterForm(BootstrapMixin, forms.Form):
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q'],
|
||||||
['content_type', 'mime_type'],
|
['content_type', 'mime_type', 'file_extension', 'as_attachment'],
|
||||||
['file_extension', 'as_attachment'],
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -275,10 +276,12 @@ class ExportTemplateFilterForm(BootstrapMixin, forms.Form):
|
|||||||
)
|
)
|
||||||
content_type = ContentTypeChoiceField(
|
content_type = ContentTypeChoiceField(
|
||||||
queryset=ContentType.objects.all(),
|
queryset=ContentType.objects.all(),
|
||||||
limit_choices_to=FeatureQuery('custom_fields')
|
limit_choices_to=FeatureQuery('custom_fields'),
|
||||||
|
required=False
|
||||||
)
|
)
|
||||||
mime_type = forms.CharField(
|
mime_type = forms.CharField(
|
||||||
required=False
|
required=False,
|
||||||
|
label=_('MIME type')
|
||||||
)
|
)
|
||||||
file_extension = forms.CharField(
|
file_extension = forms.CharField(
|
||||||
required=False
|
required=False
|
||||||
@ -377,8 +380,8 @@ class WebhookBulkEditForm(BootstrapMixin, BulkEditForm):
|
|||||||
class WebhookFilterForm(BootstrapMixin, forms.Form):
|
class WebhookFilterForm(BootstrapMixin, forms.Form):
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q'],
|
||||||
['content_types', 'http_method'],
|
['content_types', 'http_method', 'enabled'],
|
||||||
['enabled', 'type_create', 'type_update', 'type_delete'],
|
['type_create', 'type_update', 'type_delete'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -387,12 +390,14 @@ class WebhookFilterForm(BootstrapMixin, forms.Form):
|
|||||||
)
|
)
|
||||||
content_types = ContentTypeMultipleChoiceField(
|
content_types = ContentTypeMultipleChoiceField(
|
||||||
queryset=ContentType.objects.all(),
|
queryset=ContentType.objects.all(),
|
||||||
limit_choices_to=FeatureQuery('custom_fields')
|
limit_choices_to=FeatureQuery('custom_fields'),
|
||||||
|
required=False
|
||||||
)
|
)
|
||||||
http_method = forms.MultipleChoiceField(
|
http_method = forms.MultipleChoiceField(
|
||||||
choices=WebhookHttpMethodChoices,
|
choices=WebhookHttpMethodChoices,
|
||||||
required=False,
|
required=False,
|
||||||
widget=StaticSelectMultiple()
|
widget=StaticSelectMultiple(),
|
||||||
|
label=_('HTTP method')
|
||||||
)
|
)
|
||||||
enabled = forms.NullBooleanField(
|
enabled = forms.NullBooleanField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -693,16 +698,12 @@ class ConfigContextBulkEditForm(BootstrapMixin, BulkEditForm):
|
|||||||
|
|
||||||
|
|
||||||
class ConfigContextFilterForm(BootstrapMixin, forms.Form):
|
class ConfigContextFilterForm(BootstrapMixin, forms.Form):
|
||||||
field_order = [
|
|
||||||
'q', 'region_id', 'site_group_id', 'site_id', 'role_id', 'platform_id', 'cluster_group_id',
|
|
||||||
'cluster_id', 'tenant_group_id', 'tenant_id',
|
|
||||||
]
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['device_type_id', 'role_id', 'platform_id'],
|
['device_type_id', 'platform_id', 'role_id'],
|
||||||
['cluster_group_id', 'cluster_id'],
|
['cluster_group_id', 'cluster_id'],
|
||||||
['tenant_group_id', 'tenant_id', 'tag']
|
['tenant_group_id', 'tenant_id']
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
|
@ -107,12 +107,10 @@ class VRFBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEdi
|
|||||||
|
|
||||||
class VRFFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class VRFFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = VRF
|
model = VRF
|
||||||
field_order = ['q', 'import_target_id', 'export_target_id', 'tenant_group_id', 'tenant_id']
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['import_target_id', 'export_target_id'],
|
['import_target_id', 'export_target_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -186,9 +184,8 @@ class RouteTargetBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldMode
|
|||||||
|
|
||||||
class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = RouteTarget
|
model = RouteTarget
|
||||||
field_order = ['q', 'name', 'tenant_group_id', 'tenant_id', 'importing_vrfs', 'exporting_vrfs']
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['importing_vrf_id', 'exporting_vrf_id'],
|
['importing_vrf_id', 'exporting_vrf_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
]
|
]
|
||||||
@ -348,9 +345,8 @@ class AggregateBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelB
|
|||||||
|
|
||||||
class AggregateFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class AggregateFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = Aggregate
|
model = Aggregate
|
||||||
field_order = ['q', 'family', 'rir', 'tenant_group_id', 'tenant_id']
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['family', 'rir_id'],
|
['family', 'rir_id'],
|
||||||
['tenant_group_id', 'tenant_id']
|
['tenant_group_id', 'tenant_id']
|
||||||
]
|
]
|
||||||
@ -628,17 +624,13 @@ class PrefixBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulk
|
|||||||
|
|
||||||
class PrefixFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class PrefixFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = Prefix
|
model = Prefix
|
||||||
field_order = [
|
|
||||||
'q', 'within_include', 'family', 'mask_length', 'vrf_id', 'present_in_vrf_id', 'status',
|
|
||||||
'region_id', 'site_group_id', 'site_id', 'role_id', 'tenant_group_id', 'tenant_id',
|
|
||||||
'is_pool', 'mark_utilized',
|
|
||||||
]
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['role_id', 'within_include', 'family', 'mask_length'],
|
['within_include', 'family', 'status', 'role_id'],
|
||||||
['vrf_id', 'present_in_vrf_id', 'is_pool', 'mark_utilized'],
|
['vrf_id', 'present_in_vrf_id'],
|
||||||
|
['mask_length', 'is_pool', 'mark_utilized'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['tenant_group_id', 'tenant_id', 'status', 'tag']
|
['tenant_group_id', 'tenant_id']
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -838,13 +830,10 @@ class IPRangeBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBul
|
|||||||
|
|
||||||
class IPRangeFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class IPRangeFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = IPRange
|
model = IPRange
|
||||||
field_order = [
|
|
||||||
'q', 'family', 'vrf_id', 'status', 'role_id', 'tenant_group_id', 'tenant_id',
|
|
||||||
]
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['family', 'vrf_id', 'status', 'role_id'],
|
['family', 'vrf_id', 'status', 'role_id'],
|
||||||
['tenant_group_id', 'tenant_id', 'tag'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -1280,10 +1269,10 @@ class IPAddressFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFil
|
|||||||
'assigned_to_interface', 'tenant_group_id', 'tenant_id',
|
'assigned_to_interface', 'tenant_group_id', 'tenant_id',
|
||||||
]
|
]
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['parent', 'family', 'mask_length'],
|
['parent', 'family', 'status', 'role'],
|
||||||
['status', 'vrf_id', 'present_in_vrf_id'],
|
['vrf_id', 'present_in_vrf_id'],
|
||||||
['role', 'assigned_to_interface'],
|
['mask_length', 'assigned_to_interface'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
@ -1489,8 +1478,7 @@ class VLANGroupBulkEditForm(BootstrapMixin, CustomFieldModelBulkEditForm):
|
|||||||
class VLANGroupFilterForm(BootstrapMixin, forms.Form):
|
class VLANGroupFilterForm(BootstrapMixin, forms.Form):
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q'],
|
||||||
['region', 'sitegroup', 'site'],
|
['region', 'sitegroup', 'site', 'location', 'rack']
|
||||||
['location', 'rack']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -1707,14 +1695,10 @@ class VLANBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEd
|
|||||||
|
|
||||||
class VLANFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class VLANFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = VLAN
|
model = VLAN
|
||||||
field_order = [
|
|
||||||
'q', 'region_id', 'site_group_id', 'site_id', 'group_id', 'status', 'role_id',
|
|
||||||
'tenant_group_id', 'tenant_id',
|
|
||||||
]
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['region_id', 'site_group_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['group_id', 'role_id', 'status'],
|
['group_id', 'status', 'role_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
@ -1818,6 +1802,10 @@ class ServiceForm(BootstrapMixin, CustomFieldModelForm):
|
|||||||
|
|
||||||
class ServiceFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class ServiceFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = Service
|
model = Service
|
||||||
|
field_groups = (
|
||||||
|
('q', 'tag'),
|
||||||
|
('protocol', 'port'),
|
||||||
|
)
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
|
@ -4,42 +4,52 @@
|
|||||||
<form action="." method="get">
|
<form action="." method="get">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body overflow-visible d-flex flex-wrap justify-content-between py-3">
|
<div class="card-body overflow-visible d-flex flex-wrap justify-content-between py-3">
|
||||||
{% for field in filter_form.hidden_fields %}
|
{% for field in filter_form.hidden_fields %}
|
||||||
{{ field }}
|
{{ field }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if filter_form.field_groups %}
|
{% if filter_form.field_groups %}
|
||||||
{% for group in filter_form.field_groups %}
|
{# List filters by group #}
|
||||||
<div class="col col-12">
|
{% for group in filter_form.field_groups %}
|
||||||
{% for name in group %}
|
<div class="col col-12">
|
||||||
{% with field=filter_form|get_item:name %}
|
{% for name in group %}
|
||||||
{% render_field field %}
|
{% with field=filter_form|get_item:name %}
|
||||||
{% endwith %}
|
{% render_field field %}
|
||||||
{% endfor %}
|
{% endwith %}
|
||||||
</div>
|
{% endfor %}
|
||||||
<hr class="card-divider mt-0" />
|
</div>
|
||||||
{% endfor %}
|
{% if not forloop.last %}
|
||||||
{% for name in filter_form.custom_field_filters %}
|
<hr class="card-divider mt-0" />
|
||||||
<div class="col col-12">
|
|
||||||
{% with field=filter_form|get_item:name %}
|
|
||||||
{% render_field field %}
|
|
||||||
{% endwith %}
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
{% for field in filter_form.visible_fields %}
|
|
||||||
<div class="col col-12">
|
|
||||||
{% render_field field %}
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{# List all non-customfield filters as declared in the form class #}
|
||||||
|
{% for field in filter_form.visible_fields %}
|
||||||
|
{% if not filter_form.custom_field_filters or field.name not in filter_form.custom_field_filters %}
|
||||||
|
<div class="col col-12">
|
||||||
|
{% render_field field %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if filter_form.custom_field_filters %}
|
||||||
|
{# List all custom field filters #}
|
||||||
|
<hr class="card-divider mt-0" />
|
||||||
|
{% for name in filter_form.custom_field_filters %}
|
||||||
|
<div class="col col-12">
|
||||||
|
{% with field=filter_form|get_item:name %}
|
||||||
|
{% render_field field %}
|
||||||
|
{% endwith %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer text-end noprint border-0">
|
<div class="card-footer text-end noprint border-0">
|
||||||
<button type="button" class="btn btn-sm btn-outline-danger m-1" data-reset-select>
|
<button type="button" class="btn btn-sm btn-outline-danger m-1" data-reset-select>
|
||||||
<i class="mdi mdi-backspace"></i> Reset
|
<i class="mdi mdi-backspace"></i> Reset
|
||||||
</button>
|
</button>
|
||||||
<button type="submit" class="btn btn-sm btn-primary m-1">
|
<button type="submit" class="btn btn-sm btn-primary m-1">
|
||||||
<i class="mdi mdi-filter-variant"></i> Filter
|
<i class="mdi mdi-filter-variant"></i> Filter
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -135,6 +135,10 @@ class TenantBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulk
|
|||||||
|
|
||||||
class TenantFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
class TenantFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||||
model = Tenant
|
model = Tenant
|
||||||
|
field_groups = (
|
||||||
|
('q', 'tag'),
|
||||||
|
('group_id',),
|
||||||
|
)
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||||
|
@ -228,11 +228,10 @@ class ClusterFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilte
|
|||||||
'q', 'type_id', 'region_id', 'site_id', 'group_id', 'tenant_group_id', 'tenant_id',
|
'q', 'type_id', 'region_id', 'site_id', 'group_id', 'tenant_group_id', 'tenant_id',
|
||||||
]
|
]
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['type_id'],
|
['group_id', 'type_id'],
|
||||||
['region_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
['tag'],
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -251,12 +250,19 @@ class ClusterFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilte
|
|||||||
label=_('Region'),
|
label=_('Region'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
)
|
)
|
||||||
|
site_group_id = DynamicModelMultipleChoiceField(
|
||||||
|
queryset=SiteGroup.objects.all(),
|
||||||
|
required=False,
|
||||||
|
label=_('Site group'),
|
||||||
|
fetch_trigger='open'
|
||||||
|
)
|
||||||
site_id = DynamicModelMultipleChoiceField(
|
site_id = DynamicModelMultipleChoiceField(
|
||||||
queryset=Site.objects.all(),
|
queryset=Site.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
null_option='None',
|
null_option='None',
|
||||||
query_params={
|
query_params={
|
||||||
'region_id': '$region_id'
|
'region_id': '$region_id',
|
||||||
|
'site_group_id': '$site_group_id',
|
||||||
},
|
},
|
||||||
label=_('Site'),
|
label=_('Site'),
|
||||||
fetch_trigger='open'
|
fetch_trigger='open'
|
||||||
@ -541,18 +547,12 @@ class VirtualMachineBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldM
|
|||||||
|
|
||||||
class VirtualMachineFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
class VirtualMachineFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm):
|
||||||
model = VirtualMachine
|
model = VirtualMachine
|
||||||
field_order = [
|
|
||||||
'q', 'cluster_group_id', 'cluster_type_id', 'cluster_id', 'status', 'role_id', 'region_id', 'site_group_id',
|
|
||||||
'site_id', 'tenant_group_id', 'tenant_id', 'platform_id', 'mac_address',
|
|
||||||
]
|
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['status', 'role_id'],
|
|
||||||
['platform_id', 'mac_address'],
|
|
||||||
['cluster_group_id', 'cluster_type_id', 'cluster_id'],
|
['cluster_group_id', 'cluster_type_id', 'cluster_id'],
|
||||||
['region_id', 'site_id'],
|
['region_id', 'site_group_id', 'site_id'],
|
||||||
|
['status', 'role_id', 'platform_id', 'mac_address', 'has_primary_ip'],
|
||||||
['tenant_group_id', 'tenant_id'],
|
['tenant_group_id', 'tenant_id'],
|
||||||
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
@ -878,10 +878,9 @@ class VMInterfaceBulkRenameForm(BulkRenameForm):
|
|||||||
class VMInterfaceFilterForm(BootstrapMixin, forms.Form):
|
class VMInterfaceFilterForm(BootstrapMixin, forms.Form):
|
||||||
model = VMInterface
|
model = VMInterface
|
||||||
field_groups = [
|
field_groups = [
|
||||||
['q'],
|
['q', 'tag'],
|
||||||
['cluster_id', 'virtual_machine_id'],
|
['cluster_id', 'virtual_machine_id'],
|
||||||
['enabled', 'mac_address'],
|
['enabled', 'mac_address'],
|
||||||
['tag']
|
|
||||||
]
|
]
|
||||||
q = forms.CharField(
|
q = forms.CharField(
|
||||||
required=False,
|
required=False,
|
||||||
|
Reference in New Issue
Block a user