replace list_route() and detail_route() with action()
This commit is contained in:
parent
be0531415d
commit
c5d8315d97
3 changed files with 18 additions and 18 deletions
|
@ -4,7 +4,7 @@ from django.db.models import Prefetch, Q
|
||||||
from django.urls import Resolver404, resolve
|
from django.urls import Resolver404, resolve
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from rest_framework.decorators import detail_route, list_route
|
from rest_framework.decorators import action
|
||||||
from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
|
from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
|
||||||
from rest_framework.generics import get_object_or_404
|
from rest_framework.generics import get_object_or_404
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
@ -75,7 +75,7 @@ class EditorViewSet(ViewSet):
|
||||||
return levels, levels_on_top, levels_under
|
return levels, levels_on_top, levels_under
|
||||||
|
|
||||||
# noinspection PyPep8Naming
|
# noinspection PyPep8Naming
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(etag_func=etag_func, cache_parameters={'level': str, 'space': str})
|
@api_etag(etag_func=etag_func, cache_parameters={'level': str, 'space': str})
|
||||||
def geometries(self, request, *args, **kwargs):
|
def geometries(self, request, *args, **kwargs):
|
||||||
if not can_access_editor(request):
|
if not can_access_editor(request):
|
||||||
|
@ -232,7 +232,7 @@ class EditorViewSet(ViewSet):
|
||||||
else:
|
else:
|
||||||
raise ValidationError('No level or space specified.')
|
raise ValidationError('No level or space specified.')
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(etag_func=MapUpdate.current_cache_key, cache_parameters={})
|
@api_etag(etag_func=MapUpdate.current_cache_key, cache_parameters={})
|
||||||
def geometrystyles(self, request, *args, **kwargs):
|
def geometrystyles(self, request, *args, **kwargs):
|
||||||
if not can_access_editor(request):
|
if not can_access_editor(request):
|
||||||
|
@ -257,7 +257,7 @@ class EditorViewSet(ViewSet):
|
||||||
'wifimeasurement': '#DDDD00',
|
'wifimeasurement': '#DDDD00',
|
||||||
})
|
})
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(etag_func=etag_func, cache_parameters={})
|
@api_etag(etag_func=etag_func, cache_parameters={})
|
||||||
def bounds(self, request, *args, **kwargs):
|
def bounds(self, request, *args, **kwargs):
|
||||||
if not can_access_editor(request):
|
if not can_access_editor(request):
|
||||||
|
@ -344,14 +344,14 @@ class ChangeSetViewSet(ReadOnlyModelViewSet):
|
||||||
return PermissionDenied
|
return PermissionDenied
|
||||||
return Response(self.get_object().serialize())
|
return Response(self.get_object().serialize())
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
def current(self, request, *args, **kwargs):
|
def current(self, request, *args, **kwargs):
|
||||||
if not can_access_editor(request):
|
if not can_access_editor(request):
|
||||||
return PermissionDenied
|
return PermissionDenied
|
||||||
changeset = ChangeSet.get_for_request(request)
|
changeset = ChangeSet.get_for_request(request)
|
||||||
return Response(changeset.serialize())
|
return Response(changeset.serialize())
|
||||||
|
|
||||||
@detail_route(methods=['get'])
|
@action(detail=True, methods=['get'])
|
||||||
def changes(self, request, *args, **kwargs):
|
def changes(self, request, *args, **kwargs):
|
||||||
if not can_access_editor(request):
|
if not can_access_editor(request):
|
||||||
return PermissionDenied
|
return PermissionDenied
|
||||||
|
|
|
@ -12,7 +12,7 @@ from django.utils.cache import get_conditional_response
|
||||||
from django.utils.http import http_date, quote_etag, urlsafe_base64_encode
|
from django.utils.http import http_date, quote_etag, urlsafe_base64_encode
|
||||||
from django.utils.translation import get_language
|
from django.utils.translation import get_language
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from rest_framework.decorators import detail_route, list_route
|
from rest_framework.decorators import action
|
||||||
from rest_framework.exceptions import NotFound, ValidationError
|
from rest_framework.exceptions import NotFound, ValidationError
|
||||||
from rest_framework.mixins import RetrieveModelMixin
|
from rest_framework.mixins import RetrieveModelMixin
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
@ -84,7 +84,7 @@ class MapViewSet(ViewSet):
|
||||||
/bounds/ returns the maximum bounds of the map
|
/bounds/ returns the maximum bounds of the map
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(permissions=False, cache_parameters={})
|
@api_etag(permissions=False, cache_parameters={})
|
||||||
def bounds(self, request, *args, **kwargs):
|
def bounds(self, request, *args, **kwargs):
|
||||||
return Response({
|
return Response({
|
||||||
|
@ -205,7 +205,7 @@ class LevelViewSet(MapdataViewSet):
|
||||||
"""
|
"""
|
||||||
queryset = Level.objects.all()
|
queryset = Level.objects.all()
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(permissions=False, cache_parameters={})
|
@api_etag(permissions=False, cache_parameters={})
|
||||||
def geometrytypes(self, request):
|
def geometrytypes(self, request):
|
||||||
return self.list_types(get_submodels(LevelGeometryMixin))
|
return self.list_types(get_submodels(LevelGeometryMixin))
|
||||||
|
@ -225,7 +225,7 @@ class SpaceViewSet(MapdataViewSet):
|
||||||
queryset = Space.objects.all()
|
queryset = Space.objects.all()
|
||||||
base_mapdata = True
|
base_mapdata = True
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(permissions=False, cache_parameters={})
|
@api_etag(permissions=False, cache_parameters={})
|
||||||
def geometrytypes(self, request):
|
def geometrytypes(self, request):
|
||||||
return self.list_types(get_submodels(SpaceGeometryMixin))
|
return self.list_types(get_submodels(SpaceGeometryMixin))
|
||||||
|
@ -329,7 +329,7 @@ class LocationViewSetBase(RetrieveModelMixin, GenericViewSet):
|
||||||
geometry=geometry and MapdataViewSet.can_access_geometry(request, location),
|
geometry=geometry and MapdataViewSet.can_access_geometry(request, location),
|
||||||
simple_geometry=True))
|
simple_geometry=True))
|
||||||
|
|
||||||
@detail_route(methods=['get'])
|
@action(detail=True, methods=['get'])
|
||||||
@api_etag(base_mapdata_check=True)
|
@api_etag(base_mapdata_check=True)
|
||||||
def details(self, request, **kwargs):
|
def details(self, request, **kwargs):
|
||||||
location = self.get_object()
|
location = self.get_object()
|
||||||
|
@ -391,7 +391,7 @@ class LocationViewSet(LocationViewSetBase):
|
||||||
|
|
||||||
return Response(result)
|
return Response(result)
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
@api_etag(permissions=False)
|
@api_etag(permissions=False)
|
||||||
def types(self, request):
|
def types(self, request):
|
||||||
return MapdataViewSet.list_types(get_submodels(Location), geomtype=False)
|
return MapdataViewSet.list_types(get_submodels(Location), geomtype=False)
|
||||||
|
@ -410,7 +410,7 @@ class SourceViewSet(MapdataViewSet):
|
||||||
queryset = Source.objects.all()
|
queryset = Source.objects.all()
|
||||||
order_by = ('name',)
|
order_by = ('name',)
|
||||||
|
|
||||||
@detail_route(methods=['get'])
|
@action(detail=True, methods=['get'])
|
||||||
def image(self, request, pk=None):
|
def image(self, request, pk=None):
|
||||||
return self._image(request, pk=pk)
|
return self._image(request, pk=pk)
|
||||||
|
|
||||||
|
@ -439,7 +439,7 @@ class UpdatesViewSet(GenericViewSet):
|
||||||
Set the tile access cookie.
|
Set the tile access cookie.
|
||||||
The tile access cookie is only valid for 1 minute, so if you are displaying a map, call this endpoint repeatedly.
|
The tile access cookie is only valid for 1 minute, so if you are displaying a map, call this endpoint repeatedly.
|
||||||
"""
|
"""
|
||||||
@list_route(methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
def fetch(self, request, key=None):
|
def fetch(self, request, key=None):
|
||||||
cross_origin = request.META.get('HTTP_ORIGIN')
|
cross_origin = request.META.get('HTTP_ORIGIN')
|
||||||
if cross_origin is not None:
|
if cross_origin is not None:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from rest_framework.decorators import list_route
|
from rest_framework.decorators import action
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.viewsets import ViewSet
|
from rest_framework.viewsets import ViewSet
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ class RoutingViewSet(ViewSet):
|
||||||
/options/ Get or set route options.
|
/options/ Get or set route options.
|
||||||
/locate/ Wifi locate.
|
/locate/ Wifi locate.
|
||||||
"""
|
"""
|
||||||
@list_route(methods=['get', 'post'])
|
@action(detail=False, methods=['get', 'post'])
|
||||||
def route(self, request, *args, **kwargs):
|
def route(self, request, *args, **kwargs):
|
||||||
params = request.POST if request.method == 'POST' else request.GET
|
params = request.POST if request.method == 'POST' else request.GET
|
||||||
form = RouteForm(params, request=request)
|
form = RouteForm(params, request=request)
|
||||||
|
@ -64,7 +64,7 @@ class RoutingViewSet(ViewSet):
|
||||||
'result': route.serialize(locations=visible_locations_for_request(request)),
|
'result': route.serialize(locations=visible_locations_for_request(request)),
|
||||||
})
|
})
|
||||||
|
|
||||||
@list_route(methods=['get', 'post'])
|
@action(detail=False, methods=['get', 'post'])
|
||||||
def options(self, request, *args, **kwargs):
|
def options(self, request, *args, **kwargs):
|
||||||
options = RouteOptions.get_for_request(request)
|
options = RouteOptions.get_for_request(request)
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ class RoutingViewSet(ViewSet):
|
||||||
|
|
||||||
return Response(options.serialize())
|
return Response(options.serialize())
|
||||||
|
|
||||||
@list_route(methods=('POST', ))
|
@action(detail=False, methods=('POST', ))
|
||||||
def locate(self, request, *args, **kwargs):
|
def locate(self, request, *args, **kwargs):
|
||||||
try:
|
try:
|
||||||
location = Locator.load().locate(request.data, permissions=AccessPermission.get_for_request(request))
|
location = Locator.load().locate(request.data, permissions=AccessPermission.get_for_request(request))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue