From 69b51ddc3732333ba108fd38236388c0b1c0bdd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sun, 9 Dec 2018 21:15:41 +0100 Subject: [PATCH] don't forget to add etag to editor html responses --- src/c3nav/editor/views/base.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/c3nav/editor/views/base.py b/src/c3nav/editor/views/base.py index b6a16a64..3e6f1e47 100644 --- a/src/c3nav/editor/views/base.py +++ b/src/c3nav/editor/views/base.py @@ -101,6 +101,13 @@ class APIHybridResponse(ABC): if not self.has_header(header): self[header] = value + def add_headers(self, response): + if self.etag is not None: + response['ETag'] = self.etag + if self.last_modified is not None: + response['Last-Modified'] = self.last_modified + return response + @abstractmethod def get_api_response(self, request): pass @@ -214,7 +221,7 @@ class APIHybridFormTemplateResponse(APIHybridResponse): def get_html_response(self, request): if self.error: messages.error(request, self.error.message) - return render(request, self.template, self.ctx) + return self.add_headers(render(request, self.template, self.ctx)) class APIHybridTemplateContextResponse(APIHybridResponse): @@ -238,7 +245,7 @@ class APIHybridTemplateContextResponse(APIHybridResponse): return result def get_html_response(self, request): - return render(request, self.template, self.ctx) + return self.add_headers(render(request, self.template, self.ctx)) class NoAPIHybridResponse(Exception): @@ -261,11 +268,7 @@ def call_api_hybrid_view_for_api(func, request, *args, **kwargs): result.move_to_end('messages', last=False) api_response = APIResponse(result, status=response.status_code) - if response.etag: - api_response['ETag'] = response.etag - if response.last_modified: - api_response['Last-Modified'] = response.last_modified - return api_response + return response.add_headers(api_response) elif isinstance(response, HttpResponse) and response.status_code in (304, 412): # 304 Not Modified, 412 Precondition Failed return response