mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Closes #10695: Rename forms/models.py to forms/model_forms.py
This commit is contained in:
209
netbox/wireless/forms/model_forms.py
Normal file
209
netbox/wireless/forms/model_forms.py
Normal file
@ -0,0 +1,209 @@
|
||||
from dcim.models import Device, Interface, Location, Region, Site, SiteGroup
|
||||
from ipam.models import VLAN, VLANGroup
|
||||
from netbox.forms import NetBoxModelForm
|
||||
from tenancy.forms import TenancyForm
|
||||
from utilities.forms import DynamicModelChoiceField, SlugField, StaticSelect
|
||||
from wireless.models import *
|
||||
|
||||
__all__ = (
|
||||
'WirelessLANForm',
|
||||
'WirelessLANGroupForm',
|
||||
'WirelessLinkForm',
|
||||
)
|
||||
|
||||
|
||||
class WirelessLANGroupForm(NetBoxModelForm):
|
||||
parent = DynamicModelChoiceField(
|
||||
queryset=WirelessLANGroup.objects.all(),
|
||||
required=False
|
||||
)
|
||||
slug = SlugField()
|
||||
|
||||
fieldsets = (
|
||||
('Wireless LAN Group', (
|
||||
'parent', 'name', 'slug', 'description', 'tags',
|
||||
)),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = WirelessLANGroup
|
||||
fields = [
|
||||
'parent', 'name', 'slug', 'description', 'tags',
|
||||
]
|
||||
|
||||
|
||||
class WirelessLANForm(TenancyForm, NetBoxModelForm):
|
||||
group = DynamicModelChoiceField(
|
||||
queryset=WirelessLANGroup.objects.all(),
|
||||
required=False
|
||||
)
|
||||
|
||||
region = DynamicModelChoiceField(
|
||||
queryset=Region.objects.all(),
|
||||
required=False,
|
||||
initial_params={
|
||||
'sites': '$site'
|
||||
}
|
||||
)
|
||||
site_group = DynamicModelChoiceField(
|
||||
queryset=SiteGroup.objects.all(),
|
||||
required=False,
|
||||
initial_params={
|
||||
'sites': '$site'
|
||||
}
|
||||
)
|
||||
site = DynamicModelChoiceField(
|
||||
queryset=Site.objects.all(),
|
||||
required=False,
|
||||
null_option='None',
|
||||
query_params={
|
||||
'region_id': '$region',
|
||||
'group_id': '$site_group',
|
||||
}
|
||||
)
|
||||
vlan_group = DynamicModelChoiceField(
|
||||
queryset=VLANGroup.objects.all(),
|
||||
required=False,
|
||||
label='VLAN group',
|
||||
null_option='None',
|
||||
query_params={
|
||||
'site': '$site'
|
||||
},
|
||||
initial_params={
|
||||
'vlans': '$vlan'
|
||||
}
|
||||
)
|
||||
vlan = DynamicModelChoiceField(
|
||||
queryset=VLAN.objects.all(),
|
||||
required=False,
|
||||
label='VLAN',
|
||||
query_params={
|
||||
'site_id': '$site',
|
||||
'group_id': '$vlan_group',
|
||||
}
|
||||
)
|
||||
|
||||
fieldsets = (
|
||||
('Wireless LAN', ('ssid', 'group', 'description', 'tags')),
|
||||
('VLAN', ('region', 'site_group', 'site', 'vlan_group', 'vlan',)),
|
||||
('Tenancy', ('tenant_group', 'tenant')),
|
||||
('Authentication', ('auth_type', 'auth_cipher', 'auth_psk')),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = WirelessLAN
|
||||
fields = [
|
||||
'ssid', 'group', 'description', 'region', 'site_group', 'site', 'vlan_group', 'vlan', 'tenant_group',
|
||||
'tenant', 'auth_type', 'auth_cipher', 'auth_psk', 'tags',
|
||||
]
|
||||
widgets = {
|
||||
'auth_type': StaticSelect,
|
||||
'auth_cipher': StaticSelect,
|
||||
}
|
||||
|
||||
|
||||
class WirelessLinkForm(TenancyForm, NetBoxModelForm):
|
||||
site_a = DynamicModelChoiceField(
|
||||
queryset=Site.objects.all(),
|
||||
required=False,
|
||||
label='Site',
|
||||
initial_params={
|
||||
'devices': '$device_a',
|
||||
}
|
||||
)
|
||||
location_a = DynamicModelChoiceField(
|
||||
queryset=Location.objects.all(),
|
||||
query_params={
|
||||
'site_id': '$site_a',
|
||||
},
|
||||
required=False,
|
||||
label='Location',
|
||||
initial_params={
|
||||
'devices': '$device_a',
|
||||
}
|
||||
)
|
||||
device_a = DynamicModelChoiceField(
|
||||
queryset=Device.objects.all(),
|
||||
query_params={
|
||||
'site_id': '$site_a',
|
||||
'location_id': '$location_a',
|
||||
},
|
||||
required=False,
|
||||
label='Device',
|
||||
initial_params={
|
||||
'interfaces': '$interface_a'
|
||||
}
|
||||
)
|
||||
interface_a = DynamicModelChoiceField(
|
||||
queryset=Interface.objects.all(),
|
||||
query_params={
|
||||
'kind': 'wireless',
|
||||
'device_id': '$device_a',
|
||||
},
|
||||
disabled_indicator='_occupied',
|
||||
label='Interface'
|
||||
)
|
||||
site_b = DynamicModelChoiceField(
|
||||
queryset=Site.objects.all(),
|
||||
required=False,
|
||||
label='Site',
|
||||
initial_params={
|
||||
'devices': '$device_b',
|
||||
}
|
||||
)
|
||||
location_b = DynamicModelChoiceField(
|
||||
queryset=Location.objects.all(),
|
||||
query_params={
|
||||
'site_id': '$site_b',
|
||||
},
|
||||
required=False,
|
||||
label='Location',
|
||||
initial_params={
|
||||
'devices': '$device_b',
|
||||
}
|
||||
)
|
||||
device_b = DynamicModelChoiceField(
|
||||
queryset=Device.objects.all(),
|
||||
query_params={
|
||||
'site_id': '$site_b',
|
||||
'location_id': '$location_b',
|
||||
},
|
||||
required=False,
|
||||
label='Device',
|
||||
initial_params={
|
||||
'interfaces': '$interface_b'
|
||||
}
|
||||
)
|
||||
interface_b = DynamicModelChoiceField(
|
||||
queryset=Interface.objects.all(),
|
||||
query_params={
|
||||
'kind': 'wireless',
|
||||
'device_id': '$device_b',
|
||||
},
|
||||
disabled_indicator='_occupied',
|
||||
label='Interface'
|
||||
)
|
||||
|
||||
fieldsets = (
|
||||
('Side A', ('site_a', 'location_a', 'device_a', 'interface_a')),
|
||||
('Side B', ('site_b', 'location_b', 'device_b', 'interface_b')),
|
||||
('Link', ('status', 'ssid', 'description', 'tags')),
|
||||
('Tenancy', ('tenant_group', 'tenant')),
|
||||
('Authentication', ('auth_type', 'auth_cipher', 'auth_psk')),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = WirelessLink
|
||||
fields = [
|
||||
'site_a', 'location_a', 'device_a', 'interface_a', 'site_b', 'location_b', 'device_b', 'interface_b',
|
||||
'status', 'ssid', 'tenant_group', 'tenant', 'description', 'auth_type', 'auth_cipher', 'auth_psk', 'tags',
|
||||
]
|
||||
widgets = {
|
||||
'status': StaticSelect,
|
||||
'auth_type': StaticSelect,
|
||||
'auth_cipher': StaticSelect,
|
||||
}
|
||||
labels = {
|
||||
'auth_type': 'Type',
|
||||
'auth_cipher': 'Cipher',
|
||||
}
|
Reference in New Issue
Block a user