diff --git a/src/c3nav/editor/views/base.py b/src/c3nav/editor/views/base.py index 01e32bad..f3a33865 100644 --- a/src/c3nav/editor/views/base.py +++ b/src/c3nav/editor/views/base.py @@ -3,6 +3,7 @@ from functools import wraps from django.http import HttpResponseNotModified, HttpResponseRedirect from django.shortcuts import render from django.utils.cache import patch_vary_headers +from django.utils.translation import get_language from c3nav.editor.models import ChangeSet from c3nav.mapdata.models.access import AccessPermission @@ -43,5 +44,5 @@ def sidebar_view(func=None, select_related=None): def etag_func(request, *args, **kwargs): - return (request.changeset.raw_cache_key_by_changes + ':' + + return (get_language() + ':' + request.changeset.raw_cache_key_by_changes + ':' + AccessPermission.cache_key_for_request(request, with_update=False)) diff --git a/src/c3nav/mapdata/api.py b/src/c3nav/mapdata/api.py index 3a8fe401..93be5001 100644 --- a/src/c3nav/mapdata/api.py +++ b/src/c3nav/mapdata/api.py @@ -9,6 +9,7 @@ from django.shortcuts import redirect from django.utils.cache import get_conditional_response from django.utils.http import quote_etag from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import get_language from rest_framework.decorators import detail_route, list_route from rest_framework.exceptions import NotFound, ValidationError from rest_framework.mixins import RetrieveModelMixin @@ -37,7 +38,7 @@ def simple_api_cache(permissions=True, etag_func=AccessPermission.etag_func): def wrapper(func): @wraps(func) def wrapped_func(self, request, *args, **kwargs): - etag = quote_etag(etag_func(request) if permissions else MapUpdate.current_cache_key()) + etag = quote_etag(get_language()+':'+(etag_func(request) if permissions else MapUpdate.current_cache_key())) response = get_conditional_response(request, etag=etag) if response is None: