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 __future__ import unicode_literals
from django.shortcuts import get_object_or_404 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 rest_framework.response import Response
from circuits import filters from circuits import filters
@ -32,7 +32,7 @@ class ProviderViewSet(CustomFieldModelViewSet):
serializer_class = serializers.ProviderSerializer serializer_class = serializers.ProviderSerializer
filter_class = filters.ProviderFilter filter_class = filters.ProviderFilter
@detail_route() @action(detail=True)
def graphs(self, request, pk=None): def graphs(self, request, pk=None):
""" """
A convenience method for rendering graphs for a particular provider. 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 import openapi
from drf_yasg.openapi import Parameter from drf_yasg.openapi import Parameter
from drf_yasg.utils import swagger_auto_schema 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.mixins import ListModelMixin
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet, ViewSet from rest_framework.viewsets import GenericViewSet, ViewSet
@ -63,7 +63,7 @@ class SiteViewSet(CustomFieldModelViewSet):
serializer_class = serializers.SiteSerializer serializer_class = serializers.SiteSerializer
filter_class = filters.SiteFilter filter_class = filters.SiteFilter
@detail_route() @action(detail=True)
def graphs(self, request, pk=None): def graphs(self, request, pk=None):
""" """
A convenience method for rendering graphs for a particular site. A convenience method for rendering graphs for a particular site.
@ -103,7 +103,7 @@ class RackViewSet(CustomFieldModelViewSet):
serializer_class = serializers.RackSerializer serializer_class = serializers.RackSerializer
filter_class = filters.RackFilter filter_class = filters.RackFilter
@detail_route() @action(detail=True)
def units(self, request, pk=None): def units(self, request, pk=None):
""" """
List rack units (by rack) List rack units (by rack)
@ -232,12 +232,12 @@ class DeviceViewSet(CustomFieldModelViewSet):
serializer_class = serializers.DeviceSerializer serializer_class = serializers.DeviceSerializer
filter_class = filters.DeviceFilter filter_class = filters.DeviceFilter
@detail_route(url_path='config-context') @action(detail=True, url_path='config-context')
def config_context(self, request, pk): def config_context(self, request, pk):
device = get_object_or_404(Device, pk=pk) device = get_object_or_404(Device, pk=pk)
return Response(device.get_config_context()) return Response(device.get_config_context())
@detail_route(url_path='napalm') @action(detail=True, url_path='napalm')
def napalm(self, request, pk): def napalm(self, request, pk):
""" """
Execute a NAPALM method on a Device Execute a NAPALM method on a Device
@ -337,7 +337,7 @@ class InterfaceViewSet(ModelViewSet):
serializer_class = serializers.InterfaceSerializer serializer_class = serializers.InterfaceSerializer
filter_class = filters.InterfaceFilter filter_class = filters.InterfaceFilter
@detail_route() @action(detail=True)
def graphs(self, request, pk=None): def graphs(self, request, pk=None):
""" """
A convenience method for rendering graphs for a particular interface. 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.db.models import Count
from django.http import Http404, HttpResponse from django.http import Http404, HttpResponse
from django.shortcuts import get_object_or_404 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.exceptions import PermissionDenied
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet
@ -94,7 +94,7 @@ class TopologyMapViewSet(ModelViewSet):
serializer_class = serializers.TopologyMapSerializer serializer_class = serializers.TopologyMapSerializer
filter_class = filters.TopologyMapFilter filter_class = filters.TopologyMapFilter
@detail_route() @action(detail=True)
def render(self, request, pk): def render(self, request, pk):
tmap = get_object_or_404(TopologyMap, pk=pk) tmap = get_object_or_404(TopologyMap, pk=pk)
@ -199,7 +199,7 @@ class ReportViewSet(ViewSet):
return Response(serializer.data) return Response(serializer.data)
@detail_route(methods=['post']) @action(detail=True, methods=['post'])
def run(self, request, pk): def run(self, request, pk):
""" """
Run a Report and create a new ReportResult, overwriting any previous result for the Report. 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.conf import settings
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from rest_framework import status 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.exceptions import PermissionDenied
from rest_framework.response import Response from rest_framework.response import Response
@ -77,7 +77,7 @@ class PrefixViewSet(CustomFieldModelViewSet):
serializer_class = serializers.PrefixSerializer serializer_class = serializers.PrefixSerializer
filter_class = filters.PrefixFilter 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): def available_prefixes(self, request, pk=None):
""" """
A convenience method for returning available child prefixes within a parent. A convenience method for returning available child prefixes within a parent.
@ -137,7 +137,7 @@ class PrefixViewSet(CustomFieldModelViewSet):
return Response(serializer.data) 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): def available_ips(self, request, pk=None):
""" """
A convenience method for returning available IP addresses within a prefix. By default, the number of IPs 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 __future__ import unicode_literals
from django.shortcuts import get_object_or_404 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 rest_framework.response import Response
from dcim.models import Interface from dcim.models import Interface
@ -53,7 +53,7 @@ class VirtualMachineViewSet(CustomFieldModelViewSet):
serializer_class = serializers.VirtualMachineSerializer serializer_class = serializers.VirtualMachineSerializer
filter_class = filters.VirtualMachineFilter filter_class = filters.VirtualMachineFilter
@detail_route(url_path='config-context') @action(detail=True, url_path='config-context')
def config_context(self, request, pk): def config_context(self, request, pk):
device = get_object_or_404(VirtualMachine, pk=pk) device = get_object_or_404(VirtualMachine, pk=pk)
return Response(device.get_config_context()) return Response(device.get_config_context())

View File

@ -6,7 +6,7 @@ django-mptt>=0.9.0
django-tables2>=1.19.0 django-tables2>=1.19.0
django-taggit>=0.22.2 django-taggit>=0.22.2
django-timezone-field>=2.0 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 drf-yasg[validation]>=1.4.4
graphviz>=0.8.2 graphviz>=0.8.2
Markdown>=2.6.11 Markdown>=2.6.11