mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Add WirelessLANGroup model
This commit is contained in:
@@ -5,10 +5,21 @@ from wireless.models import *
|
||||
|
||||
__all__ = (
|
||||
'NestedWirelessLANSerializer',
|
||||
'NestedWirelessLANGroupSerializer',
|
||||
'NestedWirelessLinkSerializer',
|
||||
)
|
||||
|
||||
|
||||
class NestedWirelessLANGroupSerializer(WritableNestedSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslangroup-detail')
|
||||
wirelesslan_count = serializers.IntegerField(read_only=True)
|
||||
_depth = serializers.IntegerField(source='level', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = WirelessLANGroup
|
||||
fields = ['id', 'url', 'display', 'name', 'slug', 'wirelesslan_count', '_depth']
|
||||
|
||||
|
||||
class NestedWirelessLANSerializer(WritableNestedSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslan-detail')
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ from dcim.choices import LinkStatusChoices
|
||||
from dcim.api.serializers import NestedInterfaceSerializer
|
||||
from ipam.api.serializers import NestedVLANSerializer
|
||||
from netbox.api import ChoiceField
|
||||
from netbox.api.serializers import PrimaryModelSerializer
|
||||
from netbox.api.serializers import NestedGroupModelSerializer, PrimaryModelSerializer
|
||||
from wireless.models import *
|
||||
from .nested_serializers import *
|
||||
|
||||
@@ -14,6 +14,19 @@ __all__ = (
|
||||
)
|
||||
|
||||
|
||||
class WirelessLANGroupSerializer(NestedGroupModelSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslangroup-detail')
|
||||
parent = NestedWirelessLANGroupSerializer(required=False, allow_null=True)
|
||||
wirelesslan_count = serializers.IntegerField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = WirelessLANGroup
|
||||
fields = [
|
||||
'id', 'url', 'display', 'name', 'slug', 'parent', 'description', 'custom_fields', 'created', 'last_updated',
|
||||
'wirelesslan_count', '_depth',
|
||||
]
|
||||
|
||||
|
||||
class WirelessLANSerializer(PrimaryModelSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(view_name='wireless-api:wirelesslan-detail')
|
||||
vlan = NestedVLANSerializer(required=False, allow_null=True)
|
||||
|
||||
@@ -5,6 +5,7 @@ from . import views
|
||||
router = OrderedDefaultRouter()
|
||||
router.APIRootView = views.WirelessRootView
|
||||
|
||||
router.register('wireless-lan-groupss', views.WirelessLANGroupViewSet)
|
||||
router.register('wireless-lans', views.WirelessLANViewSet)
|
||||
router.register('wireless-links', views.WirelessLinkViewSet)
|
||||
|
||||
|
||||
@@ -14,6 +14,18 @@ class WirelessRootView(APIRootView):
|
||||
return 'Wireless'
|
||||
|
||||
|
||||
class WirelessLANGroupViewSet(CustomFieldModelViewSet):
|
||||
queryset = WirelessLANGroup.objects.add_related_count(
|
||||
WirelessLANGroup.objects.all(),
|
||||
WirelessLAN,
|
||||
'group',
|
||||
'wirelesslan_count',
|
||||
cumulative=True
|
||||
)
|
||||
serializer_class = serializers.WirelessLANGroupSerializer
|
||||
filterset_class = filtersets.WirelessLANGroupFilterSet
|
||||
|
||||
|
||||
class WirelessLANViewSet(CustomFieldModelViewSet):
|
||||
queryset = WirelessLAN.objects.prefetch_related('vlan', 'tags')
|
||||
serializer_class = serializers.WirelessLANSerializer
|
||||
|
||||
Reference in New Issue
Block a user