add language to etag

This commit is contained in:
Laura Klünder 2017-10-28 21:47:53 +02:00
parent 5fe03c4c8e
commit 8c52f9aed1
2 changed files with 4 additions and 2 deletions

View file

@ -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))

View file

@ -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: