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

Add WirelessLink model

This commit is contained in:
jeremystretch
2021-10-13 09:46:17 -04:00
parent 5271680483
commit 90e9f34494
21 changed files with 458 additions and 58 deletions

View File

@@ -5,12 +5,21 @@ from wireless.models import *
__all__ = (
'NestedWirelessLANSerializer',
'NestedWirelessLinkSerializer',
)
class NestedWirelessLANSerializer(WritableNestedSerializer):
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:ssid-detail')
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslan-detail')
class Meta:
model = WirelessLAN
fields = ['id', 'url', 'display', 'ssid']
class NestedWirelessLinkSerializer(WritableNestedSerializer):
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslink-detail')
class Meta:
model = WirelessLink
fields = ['id', 'url', 'display', 'ssid']

View File

@@ -1,16 +1,19 @@
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 *
from .nested_serializers import *
__all__ = (
'WirelessLANSerializer',
'WirelessLinkSerializer',
)
class WirelessLANSerializer(PrimaryModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:ssid-detail')
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslan-detail')
vlan = NestedVLANSerializer(required=False, allow_null=True)
class Meta:
@@ -18,3 +21,15 @@ class WirelessLANSerializer(PrimaryModelSerializer):
fields = [
'id', 'url', 'display', 'ssid', 'description', 'vlan',
]
class WirelessLinkSerializer(PrimaryModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslink-detail')
interface_a = NestedInterfaceSerializer()
interface_b = NestedInterfaceSerializer()
class Meta:
model = WirelessLAN
fields = [
'id', 'url', 'display', 'interface_a', 'interface_b', 'ssid', 'description',
]

View File

@@ -6,6 +6,7 @@ router = OrderedDefaultRouter()
router.APIRootView = views.WirelessRootView
router.register('wireless-lans', views.WirelessLANViewSet)
router.register('wireless-links', views.WirelessLinkViewSet)
app_name = 'wireless-api'
urlpatterns = router.urls

View File

@@ -14,11 +14,13 @@ class WirelessRootView(APIRootView):
return 'Wireless'
#
# Providers
#
class WirelessLANViewSet(CustomFieldModelViewSet):
queryset = WirelessLAN.objects.prefetch_related('tags')
queryset = WirelessLAN.objects.prefetch_related('vlan', 'tags')
serializer_class = serializers.WirelessLANSerializer
filterset_class = filtersets.WirelessLANFilterSet
class WirelessLinkViewSet(CustomFieldModelViewSet):
queryset = WirelessLink.objects.prefetch_related('interface_a', 'interface_b', 'tags')
serializer_class = serializers.WirelessLinkSerializer
filterset_class = filtersets.WirelessLinkFilterSet