2021-10-14 10:02:05 -04:00
|
|
|
from dcim.models import Device, Interface
|
2021-10-12 12:27:12 -04:00
|
|
|
from extras.forms import CustomFieldModelForm
|
|
|
|
from extras.models import Tag
|
|
|
|
from ipam.models import VLAN
|
2021-10-13 16:40:12 -04:00
|
|
|
from utilities.forms import (
|
|
|
|
BootstrapMixin, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, StaticSelect,
|
|
|
|
)
|
2021-10-13 09:46:17 -04:00
|
|
|
from wireless.models import *
|
2021-10-12 12:27:12 -04:00
|
|
|
|
|
|
|
__all__ = (
|
2021-10-12 17:02:53 -04:00
|
|
|
'WirelessLANForm',
|
2021-10-13 16:40:12 -04:00
|
|
|
'WirelessLANGroupForm',
|
2021-10-13 09:46:17 -04:00
|
|
|
'WirelessLinkForm',
|
2021-10-12 12:27:12 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
|
2021-10-13 16:40:12 -04:00
|
|
|
class WirelessLANGroupForm(BootstrapMixin, CustomFieldModelForm):
|
|
|
|
parent = DynamicModelChoiceField(
|
|
|
|
queryset=WirelessLANGroup.objects.all(),
|
|
|
|
required=False
|
|
|
|
)
|
|
|
|
slug = SlugField()
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = WirelessLANGroup
|
|
|
|
fields = [
|
|
|
|
'parent', 'name', 'slug', 'description',
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2021-10-12 17:02:53 -04:00
|
|
|
class WirelessLANForm(BootstrapMixin, CustomFieldModelForm):
|
2021-10-13 16:40:12 -04:00
|
|
|
group = DynamicModelChoiceField(
|
|
|
|
queryset=WirelessLANGroup.objects.all(),
|
|
|
|
required=False
|
|
|
|
)
|
2021-10-12 12:27:12 -04:00
|
|
|
vlan = DynamicModelChoiceField(
|
|
|
|
queryset=VLAN.objects.all(),
|
|
|
|
required=False
|
|
|
|
)
|
|
|
|
tags = DynamicModelMultipleChoiceField(
|
|
|
|
queryset=Tag.objects.all(),
|
|
|
|
required=False
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
2021-10-12 17:02:53 -04:00
|
|
|
model = WirelessLAN
|
2021-10-12 12:27:12 -04:00
|
|
|
fields = [
|
2021-10-13 16:40:12 -04:00
|
|
|
'ssid', 'group', 'description', 'vlan', 'tags',
|
2021-10-12 12:27:12 -04:00
|
|
|
]
|
|
|
|
fieldsets = (
|
2021-10-13 16:40:12 -04:00
|
|
|
('Wireless LAN', ('ssid', 'group', 'description', 'tags')),
|
2021-10-12 12:27:12 -04:00
|
|
|
('VLAN', ('vlan',)),
|
|
|
|
)
|
2021-10-13 09:46:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
class WirelessLinkForm(BootstrapMixin, CustomFieldModelForm):
|
2021-10-14 10:02:05 -04:00
|
|
|
device_a = DynamicModelChoiceField(
|
|
|
|
queryset=Device.objects.all(),
|
|
|
|
label='Device A'
|
|
|
|
)
|
2021-10-13 09:46:17 -04:00
|
|
|
interface_a = DynamicModelChoiceField(
|
|
|
|
queryset=Interface.objects.all(),
|
|
|
|
query_params={
|
2021-10-14 10:02:05 -04:00
|
|
|
'kind': 'wireless',
|
|
|
|
'device_id': '$device_a',
|
2021-10-13 11:48:15 -04:00
|
|
|
},
|
2021-10-14 10:02:05 -04:00
|
|
|
disabled_indicator='_occupied',
|
2021-10-13 11:48:15 -04:00
|
|
|
label='Interface A'
|
2021-10-13 09:46:17 -04:00
|
|
|
)
|
2021-10-14 10:02:05 -04:00
|
|
|
device_b = DynamicModelChoiceField(
|
|
|
|
queryset=Device.objects.all(),
|
|
|
|
label='Device B'
|
|
|
|
)
|
2021-10-13 09:46:17 -04:00
|
|
|
interface_b = DynamicModelChoiceField(
|
|
|
|
queryset=Interface.objects.all(),
|
|
|
|
query_params={
|
2021-10-14 10:02:05 -04:00
|
|
|
'kind': 'wireless',
|
|
|
|
'device_id': '$device_b',
|
2021-10-13 11:48:15 -04:00
|
|
|
},
|
2021-10-14 10:02:05 -04:00
|
|
|
disabled_indicator='_occupied',
|
2021-10-13 11:48:15 -04:00
|
|
|
label='Interface B'
|
2021-10-13 09:46:17 -04:00
|
|
|
)
|
|
|
|
tags = DynamicModelMultipleChoiceField(
|
|
|
|
queryset=Tag.objects.all(),
|
|
|
|
required=False
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = WirelessLink
|
|
|
|
fields = [
|
2021-10-14 10:02:05 -04:00
|
|
|
'device_a', 'interface_a', 'device_b', 'interface_b', 'status', 'ssid', 'description', 'tags',
|
2021-10-13 09:46:17 -04:00
|
|
|
]
|
2021-10-13 14:31:30 -04:00
|
|
|
widgets = {
|
|
|
|
'status': StaticSelect,
|
|
|
|
}
|