1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

96 lines
2.5 KiB
Python
Raw Normal View History

2021-10-14 10:02:05 -04:00
from dcim.models import Device, Interface
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 *
__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-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
)
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
fields = [
2021-10-13 16:40:12 -04:00
'ssid', 'group', 'description', 'vlan', 'tags',
]
fieldsets = (
2021-10-13 16:40:12 -04:00
('Wireless LAN', ('ssid', 'group', 'description', 'tags')),
('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-14 10:02:05 -04:00
disabled_indicator='_occupied',
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-14 10:02:05 -04:00
disabled_indicator='_occupied',
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,
}