| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- from django.forms import PasswordInput
- from django.utils.translation import gettext_lazy as _
- from dcim.models import Device, Interface, Location, Site
- from ipam.models import VLAN
- from netbox.forms import NetBoxModelForm
- from tenancy.forms import TenancyForm
- from utilities.forms.fields import CommentField, DynamicModelChoiceField, SlugField
- from utilities.forms.rendering import FieldSet, InlineFields
- from wireless.models import *
- __all__ = (
- 'WirelessLANForm',
- 'WirelessLANGroupForm',
- 'WirelessLinkForm',
- )
- class WirelessLANGroupForm(NetBoxModelForm):
- parent = DynamicModelChoiceField(
- label=_('Parent'),
- queryset=WirelessLANGroup.objects.all(),
- required=False
- )
- slug = SlugField()
- fieldsets = (
- FieldSet('parent', 'name', 'slug', 'description', 'tags', name=_('Wireless LAN Group')),
- )
- class Meta:
- model = WirelessLANGroup
- fields = [
- 'parent', 'name', 'slug', 'description', 'tags',
- ]
- class WirelessLANForm(TenancyForm, NetBoxModelForm):
- group = DynamicModelChoiceField(
- label=_('Group'),
- queryset=WirelessLANGroup.objects.all(),
- required=False
- )
- vlan = DynamicModelChoiceField(
- queryset=VLAN.objects.all(),
- required=False,
- selector=True,
- label=_('VLAN')
- )
- comments = CommentField()
- fieldsets = (
- FieldSet('ssid', 'group', 'vlan', 'status', 'description', 'tags', name=_('Wireless LAN')),
- FieldSet('tenant_group', 'tenant', name=_('Tenancy')),
- FieldSet('auth_type', 'auth_cipher', 'auth_psk', name=_('Authentication')),
- )
- class Meta:
- model = WirelessLAN
- fields = [
- 'ssid', 'group', 'status', 'vlan', 'tenant_group', 'tenant', 'auth_type', 'auth_cipher', 'auth_psk',
- 'description', 'comments', 'tags',
- ]
- widgets = {
- 'auth_psk': PasswordInput(
- render_value=True,
- attrs={'data-toggle': 'password'}
- ),
- }
- 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',
- },
- context={
- 'disabled': '_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',
- },
- context={
- 'disabled': '_occupied',
- },
- label=_('Interface')
- )
- comments = CommentField()
- fieldsets = (
- FieldSet('site_a', 'location_a', 'device_a', 'interface_a', name=_('Side A')),
- FieldSet('site_b', 'location_b', 'device_b', 'interface_b', name=_('Side B')),
- FieldSet(
- 'status',
- 'ssid',
- InlineFields('distance', 'distance_unit', label=_('Distance')),
- 'description',
- 'tags',
- name=_('Link')
- ),
- FieldSet('tenant_group', 'tenant', name=_('Tenancy')),
- FieldSet('auth_type', 'auth_cipher', 'auth_psk', name=_('Authentication')),
- )
- 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', 'auth_type', 'auth_cipher', 'auth_psk',
- 'distance', 'distance_unit', 'description', 'comments', 'tags',
- ]
- widgets = {
- 'auth_psk': PasswordInput(
- render_value=True,
- attrs={'data-toggle': 'password'}
- ),
- }
- labels = {
- 'auth_type': 'Type',
- 'auth_cipher': 'Cipher',
- }
|