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

Closes #2200: Replaced detail_route API view decorator with action (DRF change)

This commit is contained in:
Jeremy Stretch
2018-06-29 11:48:21 -04:00
parent 35d58d2f7c
commit b9bdd666da
6 changed files with 17 additions and 17 deletions

View File

@ -1,7 +1,7 @@
from __future__ import unicode_literals
from django.shortcuts import get_object_or_404
from rest_framework.decorators import detail_route
from rest_framework.decorators import action
from rest_framework.response import Response
from circuits import filters
@ -32,7 +32,7 @@ class ProviderViewSet(CustomFieldModelViewSet):
serializer_class = serializers.ProviderSerializer
filter_class = filters.ProviderFilter
@detail_route()
@action(detail=True)
def graphs(self, request, pk=None):
"""
A convenience method for rendering graphs for a particular provider.

View File

@ -8,7 +8,7 @@ from django.shortcuts import get_object_or_404
from drf_yasg import openapi
from drf_yasg.openapi import Parameter
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import detail_route
from rest_framework.decorators import action
from rest_framework.mixins import ListModelMixin
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet, ViewSet
@ -63,7 +63,7 @@ class SiteViewSet(CustomFieldModelViewSet):
serializer_class = serializers.SiteSerializer
filter_class = filters.SiteFilter
@detail_route()
@action(detail=True)
def graphs(self, request, pk=None):
"""
A convenience method for rendering graphs for a particular site.
@ -103,7 +103,7 @@ class RackViewSet(CustomFieldModelViewSet):
serializer_class = serializers.RackSerializer
filter_class = filters.RackFilter
@detail_route()
@action(detail=True)
def units(self, request, pk=None):
"""
List rack units (by rack)
@ -232,12 +232,12 @@ class DeviceViewSet(CustomFieldModelViewSet):
serializer_class = serializers.DeviceSerializer
filter_class = filters.DeviceFilter
@detail_route(url_path='config-context')
@action(detail=True, url_path='config-context')
def config_context(self, request, pk):
device = get_object_or_404(Device, pk=pk)
return Response(device.get_config_context())
@detail_route(url_path='napalm')
@action(detail=True, url_path='napalm')
def napalm(self, request, pk):
"""
Execute a NAPALM method on a Device
@ -337,7 +337,7 @@ class InterfaceViewSet(ModelViewSet):
serializer_class = serializers.InterfaceSerializer
filter_class = filters.InterfaceFilter
@detail_route()
@action(detail=True)
def graphs(self, request, pk=None):
"""
A convenience method for rendering graphs for a particular interface.

View File

@ -4,7 +4,7 @@ from django.contrib.contenttypes.models import ContentType
from django.db.models import Count
from django.http import Http404, HttpResponse
from django.shortcuts import get_object_or_404
from rest_framework.decorators import detail_route
from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied
from rest_framework.response import Response
from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet
@ -94,7 +94,7 @@ class TopologyMapViewSet(ModelViewSet):
serializer_class = serializers.TopologyMapSerializer
filter_class = filters.TopologyMapFilter
@detail_route()
@action(detail=True)
def render(self, request, pk):
tmap = get_object_or_404(TopologyMap, pk=pk)
@ -199,7 +199,7 @@ class ReportViewSet(ViewSet):
return Response(serializer.data)
@detail_route(methods=['post'])
@action(detail=True, methods=['post'])
def run(self, request, pk):
"""
Run a Report and create a new ReportResult, overwriting any previous result for the Report.

View File

@ -3,7 +3,7 @@ from __future__ import unicode_literals
from django.conf import settings
from django.shortcuts import get_object_or_404
from rest_framework import status
from rest_framework.decorators import detail_route
from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied
from rest_framework.response import Response
@ -77,7 +77,7 @@ class PrefixViewSet(CustomFieldModelViewSet):
serializer_class = serializers.PrefixSerializer
filter_class = filters.PrefixFilter
@detail_route(url_path='available-prefixes', methods=['get', 'post'])
@action(detail=True, url_path='available-prefixes', methods=['get', 'post'])
def available_prefixes(self, request, pk=None):
"""
A convenience method for returning available child prefixes within a parent.
@ -137,7 +137,7 @@ class PrefixViewSet(CustomFieldModelViewSet):
return Response(serializer.data)
@detail_route(url_path='available-ips', methods=['get', 'post'])
@action(detail=True, url_path='available-ips', methods=['get', 'post'])
def available_ips(self, request, pk=None):
"""
A convenience method for returning available IP addresses within a prefix. By default, the number of IPs

View File

@ -1,7 +1,7 @@
from __future__ import unicode_literals
from django.shortcuts import get_object_or_404
from rest_framework.decorators import detail_route
from rest_framework.decorators import action
from rest_framework.response import Response
from dcim.models import Interface
@ -53,7 +53,7 @@ class VirtualMachineViewSet(CustomFieldModelViewSet):
serializer_class = serializers.VirtualMachineSerializer
filter_class = filters.VirtualMachineFilter
@detail_route(url_path='config-context')
@action(detail=True, url_path='config-context')
def config_context(self, request, pk):
device = get_object_or_404(VirtualMachine, pk=pk)
return Response(device.get_config_context())

View File

@ -6,7 +6,7 @@ django-mptt>=0.9.0
django-tables2>=1.19.0
django-taggit>=0.22.2
django-timezone-field>=2.0
djangorestframework>=3.7.7,<3.8.2
djangorestframework>=3.8.0,<3.8.2
drf-yasg[validation]>=1.4.4
graphviz>=0.8.2
Markdown>=2.6.11