| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- from dcim.models import Device, Interface, Location, Site
- from extras.forms import CustomFieldModelForm
- from extras.models import Tag
- from ipam.models import VLAN
- from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, StaticSelect
- from wireless.models import *
- __all__ = (
- 'WirelessLANForm',
- 'WirelessLANGroupForm',
- 'WirelessLinkForm',
- )
- class WirelessLANGroupForm(CustomFieldModelForm):
- parent = DynamicModelChoiceField(
- queryset=WirelessLANGroup.objects.all(),
- required=False
- )
- slug = SlugField()
- tags = DynamicModelMultipleChoiceField(
- queryset=Tag.objects.all(),
- required=False
- )
- class Meta:
- model = WirelessLANGroup
- fields = [
- 'parent', 'name', 'slug', 'description', 'tags',
- ]
- class WirelessLANForm(CustomFieldModelForm):
- group = DynamicModelChoiceField(
- queryset=WirelessLANGroup.objects.all(),
- required=False
- )
- vlan = DynamicModelChoiceField(
- queryset=VLAN.objects.all(),
- required=False,
- label='VLAN'
- )
- tags = DynamicModelMultipleChoiceField(
- queryset=Tag.objects.all(),
- required=False
- )
- class Meta:
- model = WirelessLAN
- fields = [
- 'ssid', 'group', 'description', 'vlan', 'auth_type', 'auth_cipher', 'auth_psk', 'tags',
- ]
- fieldsets = (
- ('Wireless LAN', ('ssid', 'group', 'description', 'tags')),
- ('VLAN', ('vlan',)),
- ('Authentication', ('auth_type', 'auth_cipher', 'auth_psk')),
- )
- widgets = {
- 'auth_type': StaticSelect,
- 'auth_cipher': StaticSelect,
- }
- class WirelessLinkForm(CustomFieldModelForm):
- site_a = DynamicModelChoiceField(
- queryset=Site.objects.all(),
- required=False,
- label='Site',
- initial_params={
- 'devices': '$device_a',
- }
- )
- location_a = DynamicModelChoiceField(
- queryset=Location.objects.all(),
- 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(),
- 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'
- )
- tags = DynamicModelMultipleChoiceField(
- queryset=Tag.objects.all(),
- required=False
- )
- class Meta:
- model = WirelessLink
- fields = [
- 'site_a', 'location_a', 'device_a', 'interface_a', 'site_b', 'location_b', 'device_b', 'interface_b',
- 'status', 'ssid', 'description', 'auth_type', 'auth_cipher', 'auth_psk', 'tags',
- ]
- 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')),
- ('Authentication', ('auth_type', 'auth_cipher', 'auth_psk')),
- )
- widgets = {
- 'status': StaticSelect,
- 'auth_type': StaticSelect,
- 'auth_cipher': StaticSelect,
- }
- labels = {
- 'auth_type': 'Type',
- 'auth_cipher': 'Cipher',
- }
|