fix api_etag call with changeset

This commit is contained in:
Laura Klünder 2017-11-30 17:05:56 +01:00
parent f915210cf2
commit d368f2c0ab
2 changed files with 10 additions and 6 deletions

View file

@ -69,10 +69,8 @@ class EditorViewSet(ViewSet):
# noinspection PyPep8Naming
@list_route(methods=['get'])
@api_etag(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):
request.changeset = ChangeSet.get_for_request(request)
Level = request.changeset.wrap_model('Level')
Space = request.changeset.wrap_model('Space')
@ -204,7 +202,7 @@ class EditorViewSet(ViewSet):
raise ValidationError('No level or space specified.')
@list_route(methods=['get'])
@api_etag(MapUpdate.current_cache_key, cache_parameters={})
@api_etag(etag_func=MapUpdate.current_cache_key, cache_parameters={})
def geometrystyles(self, request, *args, **kwargs):
return Response({
'building': '#aaaaaa',
@ -225,7 +223,7 @@ class EditorViewSet(ViewSet):
})
@list_route(methods=['get'])
@api_etag(etag_func, cache_parameters={})
@api_etag(etag_func=etag_func, cache_parameters={})
def bounds(self, request, *args, **kwargs):
return Response({
'bounds': Source.max_bounds(),

View file

@ -44,5 +44,11 @@ def sidebar_view(func=None, select_related=None):
def etag_func(request, *args, **kwargs):
return (get_language() + ':' + request.changeset.raw_cache_key_by_changes + ':' +
try:
changeset = request.changeset
except AttributeError:
changeset = ChangeSet.get_for_request(request)
request.changeset = changeset
return (get_language() + ':' + changeset.raw_cache_key_by_changes + ':' +
AccessPermission.cache_key_for_request(request, with_update=False) + ':' + str(request.user.pk or 0))