Просмотр исходного кода

Rename SSID model to WirelessLAN

jeremystretch 4 лет назад
Родитель
Сommit
5271680483

+ 5 - 5
netbox/dcim/forms/models.py

@@ -16,7 +16,7 @@ from utilities.forms import (
     SlugField, StaticSelect,
 )
 from virtualization.models import Cluster, ClusterGroup
-from wireless.models import SSID
+from wireless.models import WirelessLAN
 from .common import InterfaceCommonForm
 
 __all__ = (
@@ -1069,10 +1069,10 @@ class InterfaceForm(BootstrapMixin, InterfaceCommonForm, CustomFieldModelForm):
             'type': 'lag',
         }
     )
-    ssids = DynamicModelMultipleChoiceField(
-        queryset=SSID.objects.all(),
+    wireless_lans = DynamicModelMultipleChoiceField(
+        queryset=WirelessLAN.objects.all(),
         required=False,
-        label='SSIDs'
+        label='Wireless LANs'
     )
     vlan_group = DynamicModelChoiceField(
         queryset=VLANGroup.objects.all(),
@@ -1104,7 +1104,7 @@ class InterfaceForm(BootstrapMixin, InterfaceCommonForm, CustomFieldModelForm):
         model = Interface
         fields = [
             'device', 'name', 'label', 'type', 'enabled', 'parent', 'lag', 'mac_address', 'wwn', 'mtu', 'mgmt_only',
-            'mark_connected', 'description', 'mode', 'rf_channel', 'rf_channel_width', 'ssids', 'untagged_vlan',
+            'mark_connected', 'description', 'mode', 'rf_channel', 'rf_channel_width', 'wireless_lans', 'untagged_vlan',
             'tagged_vlans', 'tags',
         ]
         widgets = {

+ 3 - 3
netbox/dcim/migrations/0136_wireless.py

@@ -4,7 +4,7 @@ from django.db import migrations, models
 class Migration(migrations.Migration):
 
     dependencies = [
-        ('wireless', '__first__'),
+        ('wireless', '0001_initial'),
         ('dcim', '0135_location_tenant'),
     ]
 
@@ -21,7 +21,7 @@ class Migration(migrations.Migration):
         ),
         migrations.AddField(
             model_name='interface',
-            name='ssids',
-            field=models.ManyToManyField(blank=True, related_name='interfaces', to='wireless.SSID'),
+            name='wireless_lans',
+            field=models.ManyToManyField(blank=True, related_name='interfaces', to='wireless.WirelessLAN'),
         ),
     ]

+ 3 - 3
netbox/dcim/models/device_components.py

@@ -529,11 +529,11 @@ class Interface(ComponentModel, BaseInterface, CableTermination, PathEndpoint):
         null=True,
         verbose_name='Channel width'
     )
-    ssids = models.ManyToManyField(
-        to='wireless.SSID',
+    wireless_lans = models.ManyToManyField(
+        to='wireless.WirelessLAN',
         related_name='interfaces',
         blank=True,
-        verbose_name='SSIDs'
+        verbose_name='Wireless LANs'
     )
     untagged_vlan = models.ForeignKey(
         to='ipam.VLAN',

+ 1 - 1
netbox/netbox/navigation_menu.py

@@ -195,7 +195,7 @@ WIRELESS_MENU = Menu(
         MenuGroup(
             label='Wireless',
             items=(
-                get_model_item('wireless', 'ssid', 'SSIDs'),
+                get_model_item('wireless', 'wirelesslan', 'Wireless LANs'),
             ),
         ),
     ),

+ 4 - 4
netbox/templates/dcim/interface.html

@@ -260,19 +260,19 @@
             {% endif %}
             {% if object.is_wireless %}
                 <div class="card">
-                    <h5 class="card-header">SSIDs</h5>
+                    <h5 class="card-header">Wireless LANs</h5>
                     <div class="card-body">
                         <table class="table table-hover table-headings">
                             <thead>
                                 <tr>
-                                    <th>Name</th>
+                                    <th>SSID</th>
                                 </tr>
                             </thead>
                             <tbody>
-                                {% for ssid in object.ssids.all %}
+                                {% for wlan in object.wlans.all %}
                                     <tr>
                                         <td>
-                                            <a href="{{ ssid.get_absolute_url }}">{{ ssid.name }}</a>
+                                            <a href="{{ wlan.get_absolute_url }}">{{ wlan.ssid }}</a>
                                         </td>
                                     </tr>
                                 {% empty %}

+ 1 - 1
netbox/templates/dcim/interface_edit.html

@@ -36,7 +36,7 @@
             </div>
             {% render_field form.rf_channel %}
             {% render_field form.rf_channel_width %}
-            {% render_field form.ssids %}
+            {% render_field form.wireless_lans %}
         </div>
     {% endif %}
 

+ 3 - 3
netbox/templates/wireless/ssid.html → netbox/templates/wireless/wirelesslan.html

@@ -6,12 +6,12 @@
 <div class="row">
 	<div class="col col-md-6">
         <div class="card">
-            <h5 class="card-header">SSID</h5>
+            <h5 class="card-header">Wireless LAN</h5>
             <div class="card-body">
                 <table class="table table-hover attr-table">
                     <tr>
-                        <th scope="row">Name</th>
-                        <td>{{ object.name }}</td>
+                        <th scope="row">SSID</th>
+                        <td>{{ object.ssid }}</td>
                     </tr>
                     <tr>
                         <th scope="row">Description</th>

+ 4 - 4
netbox/wireless/api/nested_serializers.py

@@ -4,13 +4,13 @@ from netbox.api import WritableNestedSerializer
 from wireless.models import *
 
 __all__ = (
-    'NestedSSIDSerializer',
+    'NestedWirelessLANSerializer',
 )
 
 
-class NestedSSIDSerializer(WritableNestedSerializer):
+class NestedWirelessLANSerializer(WritableNestedSerializer):
     url = serializers.HyperlinkedIdentityField(view_name='wireless-api:ssid-detail')
 
     class Meta:
-        model = SSID
-        fields = ['id', 'url', 'display', 'name']
+        model = WirelessLAN
+        fields = ['id', 'url', 'display', 'ssid']

+ 4 - 5
netbox/wireless/api/serializers.py

@@ -1,21 +1,20 @@
 from rest_framework import serializers
 
-from dcim.api.serializers import NestedInterfaceSerializer
 from ipam.api.serializers import NestedVLANSerializer
 from netbox.api.serializers import PrimaryModelSerializer
 from wireless.models import *
 
 __all__ = (
-    'SSIDSerializer',
+    'WirelessLANSerializer',
 )
 
 
-class SSIDSerializer(PrimaryModelSerializer):
+class WirelessLANSerializer(PrimaryModelSerializer):
     url = serializers.HyperlinkedIdentityField(view_name='wireless-api:ssid-detail')
     vlan = NestedVLANSerializer(required=False, allow_null=True)
 
     class Meta:
-        model = SSID
+        model = WirelessLAN
         fields = [
-            'id', 'url', 'display', 'name', 'description', 'vlan',
+            'id', 'url', 'display', 'ssid', 'description', 'vlan',
         ]

+ 1 - 2
netbox/wireless/api/urls.py

@@ -5,8 +5,7 @@ from . import views
 router = OrderedDefaultRouter()
 router.APIRootView = views.WirelessRootView
 
-# SSIDs
-router.register('ssids', views.SSIDViewSet)
+router.register('wireless-lans', views.WirelessLANViewSet)
 
 app_name = 'wireless-api'
 urlpatterns = router.urls

+ 4 - 4
netbox/wireless/api/views.py

@@ -18,7 +18,7 @@ class WirelessRootView(APIRootView):
 # Providers
 #
 
-class SSIDViewSet(CustomFieldModelViewSet):
-    queryset = SSID.objects.prefetch_related('tags')
-    serializer_class = serializers.SSIDSerializer
-    filterset_class = filtersets.SSIDFilterSet
+class WirelessLANViewSet(CustomFieldModelViewSet):
+    queryset = WirelessLAN.objects.prefetch_related('tags')
+    serializer_class = serializers.WirelessLANSerializer
+    filterset_class = filtersets.WirelessLANFilterSet

+ 1 - 0
netbox/wireless/constants.py

@@ -0,0 +1 @@
+SSID_MAX_LENGTH = 32  # Per IEEE 802.11-2007

+ 5 - 5
netbox/wireless/filtersets.py

@@ -6,11 +6,11 @@ from netbox.filtersets import PrimaryModelFilterSet
 from .models import *
 
 __all__ = (
-    'SSIDFilterSet',
+    'WirelessLANFilterSet',
 )
 
 
-class SSIDFilterSet(PrimaryModelFilterSet):
+class WirelessLANFilterSet(PrimaryModelFilterSet):
     q = django_filters.CharFilter(
         method='search',
         label='Search',
@@ -18,14 +18,14 @@ class SSIDFilterSet(PrimaryModelFilterSet):
     tag = TagFilter()
 
     class Meta:
-        model = SSID
-        fields = ['id', 'name']
+        model = WirelessLAN
+        fields = ['id', 'ssid']
 
     def search(self, queryset, name, value):
         if not value.strip():
             return queryset
         qs_filter = (
-            Q(name__icontains=value) |
+            Q(ssid__icontains=value) |
             Q(description__icontains=value)
         )
         return queryset.filter(qs_filter)

+ 2 - 2
netbox/wireless/forms/bulk_edit.py

@@ -6,11 +6,11 @@ from ipam.models import VLAN
 from utilities.forms import BootstrapMixin, DynamicModelChoiceField
 
 __all__ = (
-    'SSIDBulkEditForm',
+    'WirelessLANBulkEditForm',
 )
 
 
-class SSIDBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm):
+class WirelessLANBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm):
     pk = forms.ModelMultipleChoiceField(
         queryset=PowerFeed.objects.all(),
         widget=forms.MultipleHiddenInput

+ 5 - 5
netbox/wireless/forms/bulk_import.py

@@ -1,14 +1,14 @@
 from extras.forms import CustomFieldModelCSVForm
 from ipam.models import VLAN
 from utilities.forms import CSVModelChoiceField
-from wireless.models import SSID
+from wireless.models import WirelessLAN
 
 __all__ = (
-    'SSIDCSVForm',
+    'WirelessLANCSVForm',
 )
 
 
-class SSIDCSVForm(CustomFieldModelCSVForm):
+class WirelessLANCSVForm(CustomFieldModelCSVForm):
     vlan = CSVModelChoiceField(
         queryset=VLAN.objects.all(),
         to_field_name='name',
@@ -16,5 +16,5 @@ class SSIDCSVForm(CustomFieldModelCSVForm):
     )
 
     class Meta:
-        model = SSID
-        fields = ('name', 'description', 'vlan')
+        model = WirelessLAN
+        fields = ('ssid', 'description', 'vlan')

+ 3 - 3
netbox/wireless/forms/filtersets.py

@@ -1,13 +1,13 @@
 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
+from .models import WirelessLAN
 
 
-class SSIDFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
-    model = PowerFeed
+class WirelessLANFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
+    model = WirelessLAN
     field_groups = [
         ['q', 'tag'],
     ]

+ 6 - 8
netbox/wireless/forms/models.py

@@ -1,17 +1,15 @@
-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
+from wireless.models import WirelessLAN
 
 __all__ = (
-    'SSIDForm',
+    'WirelessLANForm',
 )
 
 
-class SSIDForm(BootstrapMixin, CustomFieldModelForm):
+class WirelessLANForm(BootstrapMixin, CustomFieldModelForm):
     vlan = DynamicModelChoiceField(
         queryset=VLAN.objects.all(),
         required=False
@@ -22,11 +20,11 @@ class SSIDForm(BootstrapMixin, CustomFieldModelForm):
     )
 
     class Meta:
-        model = SSID
+        model = WirelessLAN
         fields = [
-            'name', 'description', 'vlan', 'tags',
+            'ssid', 'description', 'vlan', 'tags',
         ]
         fieldsets = (
-            ('SSID', ('name', 'description', 'tags')),
+            ('Wireless LAN', ('ssid', 'description', 'tags')),
             ('VLAN', ('vlan',)),
         )

+ 2 - 2
netbox/wireless/graphql/schema.py

@@ -5,5 +5,5 @@ from .types import *
 
 
 class WirelessQuery(graphene.ObjectType):
-    ssid = ObjectField(SSIDType)
-    ssid_list = ObjectListField(SSIDType)
+    wirelesslan = ObjectField(WirelessLANType)
+    wirelesslan_list = ObjectListField(WirelessLANType)

+ 4 - 4
netbox/wireless/graphql/types.py

@@ -2,13 +2,13 @@ from wireless import filtersets, models
 from netbox.graphql.types import ObjectType
 
 __all__ = (
-    'SSIDType',
+    'WirelessLANType',
 )
 
 
-class SSIDType(ObjectType):
+class WirelessLANType(ObjectType):
 
     class Meta:
-        model = models.SSID
+        model = models.WirelessLAN
         fields = '__all__'
-        filterset_class = filtersets.SSIDFilterSet
+        filterset_class = filtersets.WirelessLANFilterSet

+ 5 - 6
netbox/wireless/migrations/0001_initial.py

@@ -9,27 +9,26 @@ class Migration(migrations.Migration):
     initial = True
 
     dependencies = [
-        ('extras', '0062_clear_secrets_changelog'),
         ('ipam', '0050_iprange'),
+        ('extras', '0062_clear_secrets_changelog'),
     ]
 
     operations = [
         migrations.CreateModel(
-            name='SSID',
+            name='WirelessLAN',
             fields=[
                 ('created', models.DateField(auto_now_add=True, null=True)),
                 ('last_updated', models.DateTimeField(auto_now=True, null=True)),
                 ('custom_field_data', models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder)),
                 ('id', models.BigAutoField(primary_key=True, serialize=False)),
-                ('name', models.CharField(max_length=32)),
+                ('ssid', models.CharField(max_length=32)),
                 ('description', models.CharField(blank=True, max_length=200)),
                 ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
                 ('vlan', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='ipam.vlan')),
             ],
             options={
-                'verbose_name': 'SSID',
-                'verbose_name_plural': 'SSIDs',
-                'ordering': ('name', 'pk'),
+                'verbose_name': 'Wireless LAN',
+                'ordering': ('ssid', 'pk'),
             },
         ),
     ]

+ 8 - 11
netbox/wireless/models.py

@@ -1,25 +1,23 @@
+from django.core.exceptions import ValidationError
 from django.db import models
 from django.urls import reverse
 
+from dcim.constants import WIRELESS_IFACE_TYPES
 from extras.utils import extras_features
 from netbox.models import BigIDModel, PrimaryModel
 from utilities.querysets import RestrictedQuerySet
 
 __all__ = (
-    'SSID',
+    'WirelessLAN',
 )
 
 
-#
-# SSIDs
-#
-
 @extras_features('custom_fields', 'custom_links', 'export_templates', 'tags', 'webhooks')
-class SSID(PrimaryModel):
+class WirelessLAN(PrimaryModel):
     """
     A service set identifier belonging to a wireless network.
     """
-    name = models.CharField(
+    ssid = models.CharField(
         max_length=32
     )
     vlan = models.ForeignKey(
@@ -37,12 +35,11 @@ class SSID(PrimaryModel):
     objects = RestrictedQuerySet.as_manager()
 
     class Meta:
-        ordering = ('name', 'pk')
-        verbose_name = 'SSID'
-        verbose_name_plural = 'SSIDs'
+        ordering = ('ssid', 'pk')
+        verbose_name = 'Wireless LAN'
 
     def __str__(self):
-        return self.name
+        return self.ssid
 
     def get_absolute_url(self):
         return reverse('wireless:ssid', args=[self.pk])

+ 8 - 8
netbox/wireless/tables.py

@@ -1,23 +1,23 @@
 import django_tables2 as tables
 
-from .models import SSID
+from .models import WirelessLAN
 from utilities.tables import BaseTable, TagColumn, ToggleColumn
 
 __all__ = (
-    'SSIDTable',
+    'WirelessLANTable',
 )
 
 
-class SSIDTable(BaseTable):
+class WirelessLANTable(BaseTable):
     pk = ToggleColumn()
-    name = tables.Column(
+    ssid = tables.Column(
         linkify=True
     )
     tags = TagColumn(
-        url_name='dcim:cable_list'
+        url_name='wireless:wirelesslan_list'
     )
 
     class Meta(BaseTable.Meta):
-        model = SSID
-        fields = ('pk', 'name', 'description', 'vlan')
-        default_columns = ('pk', 'name', 'description', 'vlan')
+        model = WirelessLAN
+        fields = ('pk', 'ssid', 'description', 'vlan')
+        default_columns = ('pk', 'ssid', 'description', 'vlan')

+ 11 - 11
netbox/wireless/urls.py

@@ -7,16 +7,16 @@ from .models import *
 app_name = 'wireless'
 urlpatterns = (
 
-    # SSIDs
-    path('ssids/', views.SSIDListView.as_view(), name='ssid_list'),
-    path('ssids/add/', views.SSIDEditView.as_view(), name='ssid_add'),
-    path('ssids/import/', views.SSIDBulkImportView.as_view(), name='ssid_import'),
-    path('ssids/edit/', views.SSIDBulkEditView.as_view(), name='ssid_bulk_edit'),
-    path('ssids/delete/', views.SSIDBulkDeleteView.as_view(), name='ssid_bulk_delete'),
-    path('ssids/<int:pk>/', views.SSIDView.as_view(), name='ssid'),
-    path('ssids/<int:pk>/edit/', views.SSIDEditView.as_view(), name='ssid_edit'),
-    path('ssids/<int:pk>/delete/', views.SSIDDeleteView.as_view(), name='ssid_delete'),
-    path('ssids/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='ssid_changelog', kwargs={'model': SSID}),
-    path('ssids/<int:pk>/journal/', ObjectJournalView.as_view(), name='ssid_journal', kwargs={'model': SSID}),
+    # Wireless LANs
+    path('wireless-lans/', views.WirelessLANListView.as_view(), name='wirelesslan_list'),
+    path('wireless-lans/add/', views.WirelessLANEditView.as_view(), name='wirelesslan_add'),
+    path('wireless-lans/import/', views.WirelessLANBulkImportView.as_view(), name='wirelesslan_import'),
+    path('wireless-lans/edit/', views.WirelessLANBulkEditView.as_view(), name='wirelesslan_bulk_edit'),
+    path('wireless-lans/delete/', views.WirelessLANBulkDeleteView.as_view(), name='wirelesslan_bulk_delete'),
+    path('wireless-lans/<int:pk>/', views.WirelessLANView.as_view(), name='wirelesslan'),
+    path('wireless-lans/<int:pk>/edit/', views.WirelessLANEditView.as_view(), name='wirelesslan_edit'),
+    path('wireless-lans/<int:pk>/delete/', views.WirelessLANDeleteView.as_view(), name='wirelesslan_delete'),
+    path('wireless-lans/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='wirelesslan_changelog', kwargs={'model': WirelessLAN}),
+    path('wireless-lans/<int:pk>/journal/', ObjectJournalView.as_view(), name='wirelesslan_journal', kwargs={'model': WirelessLAN}),
 
 )

+ 26 - 26
netbox/wireless/views.py

@@ -4,43 +4,43 @@ from .models import *
 
 
 #
-# SSIDs
+# Wireless LANs
 #
 
-class SSIDListView(generic.ObjectListView):
-    queryset = SSID.objects.all()
-    filterset = filtersets.SSIDFilterSet
-    filterset_form = forms.SSIDFilterForm
-    table = tables.SSIDTable
+class WirelessLANListView(generic.ObjectListView):
+    queryset = WirelessLAN.objects.all()
+    filterset = filtersets.WirelessLANFilterSet
+    filterset_form = forms.WirelessLANFilterForm
+    table = tables.WirelessLANTable
 
 
-class SSIDView(generic.ObjectView):
-    queryset = SSID.objects.all()
+class WirelessLANView(generic.ObjectView):
+    queryset = WirelessLAN.objects.all()
 
 
-class SSIDEditView(generic.ObjectEditView):
-    queryset = SSID.objects.all()
-    model_form = forms.SSIDForm
+class WirelessLANEditView(generic.ObjectEditView):
+    queryset = WirelessLAN.objects.all()
+    model_form = forms.WirelessLANForm
 
 
-class SSIDDeleteView(generic.ObjectDeleteView):
-    queryset = SSID.objects.all()
+class WirelessLANDeleteView(generic.ObjectDeleteView):
+    queryset = WirelessLAN.objects.all()
 
 
-class SSIDBulkImportView(generic.BulkImportView):
-    queryset = SSID.objects.all()
-    model_form = forms.SSIDCSVForm
-    table = tables.SSIDTable
+class WirelessLANBulkImportView(generic.BulkImportView):
+    queryset = WirelessLAN.objects.all()
+    model_form = forms.WirelessLANCSVForm
+    table = tables.WirelessLANTable
 
 
-class SSIDBulkEditView(generic.BulkEditView):
-    queryset = SSID.objects.all()
-    filterset = filtersets.SSIDFilterSet
-    table = tables.SSIDTable
-    form = forms.SSIDBulkEditForm
+class WirelessLANBulkEditView(generic.BulkEditView):
+    queryset = WirelessLAN.objects.all()
+    filterset = filtersets.WirelessLANFilterSet
+    table = tables.WirelessLANTable
+    form = forms.WirelessLANBulkEditForm
 
 
-class SSIDBulkDeleteView(generic.BulkDeleteView):
-    queryset = SSID.objects.all()
-    filterset = filtersets.SSIDFilterSet
-    table = tables.SSIDTable
+class WirelessLANBulkDeleteView(generic.BulkDeleteView):
+    queryset = WirelessLAN.objects.all()
+    filterset = filtersets.WirelessLANFilterSet
+    table = tables.WirelessLANTable