mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Introduce the wireless app and SSID model
This commit is contained in:
4
netbox/wireless/forms/__init__.py
Normal file
4
netbox/wireless/forms/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from .models import *
|
||||
from .filtersets import *
|
||||
from .bulk_edit import *
|
||||
from .bulk_import import *
|
||||
29
netbox/wireless/forms/bulk_edit.py
Normal file
29
netbox/wireless/forms/bulk_edit.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from django import forms
|
||||
|
||||
from dcim.models import *
|
||||
from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
|
||||
from ipam.models import VLAN
|
||||
from utilities.forms import BootstrapMixin, DynamicModelChoiceField
|
||||
|
||||
__all__ = (
|
||||
'SSIDBulkEditForm',
|
||||
)
|
||||
|
||||
|
||||
class SSIDBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm):
|
||||
pk = forms.ModelMultipleChoiceField(
|
||||
queryset=PowerFeed.objects.all(),
|
||||
widget=forms.MultipleHiddenInput
|
||||
)
|
||||
vlan = DynamicModelChoiceField(
|
||||
queryset=VLAN.objects.all(),
|
||||
required=False,
|
||||
)
|
||||
description = forms.CharField(
|
||||
required=False
|
||||
)
|
||||
|
||||
class Meta:
|
||||
nullable_fields = [
|
||||
'vlan', 'description',
|
||||
]
|
||||
20
netbox/wireless/forms/bulk_import.py
Normal file
20
netbox/wireless/forms/bulk_import.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from extras.forms import CustomFieldModelCSVForm
|
||||
from ipam.models import VLAN
|
||||
from utilities.forms import CSVModelChoiceField
|
||||
from wireless.models import SSID
|
||||
|
||||
__all__ = (
|
||||
'SSIDCSVForm',
|
||||
)
|
||||
|
||||
|
||||
class SSIDCSVForm(CustomFieldModelCSVForm):
|
||||
vlan = CSVModelChoiceField(
|
||||
queryset=VLAN.objects.all(),
|
||||
to_field_name='name',
|
||||
help_text='Bridged VLAN'
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = SSID
|
||||
fields = ('name', 'description', 'vlan')
|
||||
19
netbox/wireless/forms/filtersets.py
Normal file
19
netbox/wireless/forms/filtersets.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from django import forms
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from dcim.models import *
|
||||
from extras.forms import CustomFieldModelFilterForm
|
||||
from utilities.forms import BootstrapMixin, TagFilterField
|
||||
|
||||
|
||||
class SSIDFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
|
||||
model = PowerFeed
|
||||
field_groups = [
|
||||
['q', 'tag'],
|
||||
]
|
||||
q = forms.CharField(
|
||||
required=False,
|
||||
widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
|
||||
label=_('Search')
|
||||
)
|
||||
tag = TagFilterField(model)
|
||||
32
netbox/wireless/forms/models.py
Normal file
32
netbox/wireless/forms/models.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from dcim.constants import *
|
||||
from dcim.models import *
|
||||
from extras.forms import CustomFieldModelForm
|
||||
from extras.models import Tag
|
||||
from ipam.models import VLAN
|
||||
from utilities.forms import BootstrapMixin, DynamicModelChoiceField, DynamicModelMultipleChoiceField
|
||||
from wireless.models import SSID
|
||||
|
||||
__all__ = (
|
||||
'SSIDForm',
|
||||
)
|
||||
|
||||
|
||||
class SSIDForm(BootstrapMixin, CustomFieldModelForm):
|
||||
vlan = DynamicModelChoiceField(
|
||||
queryset=VLAN.objects.all(),
|
||||
required=False
|
||||
)
|
||||
tags = DynamicModelMultipleChoiceField(
|
||||
queryset=Tag.objects.all(),
|
||||
required=False
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = SSID
|
||||
fields = [
|
||||
'name', 'description', 'vlan', 'tags',
|
||||
]
|
||||
fieldsets = (
|
||||
('SSID', ('name', 'description', 'tags')),
|
||||
('VLAN', ('vlan',)),
|
||||
)
|
||||
Reference in New Issue
Block a user