From 78efce8e383ab07042c00e254eebed5b2545fba4 Mon Sep 17 00:00:00 2001 From: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com> Date: Fri, 26 Mar 2021 16:04:36 +0000 Subject: [PATCH] Base, WebSection, OOoDocumentExtensibleTraversableMixin: do not compute the response body in 304 Not Modified response case. --- .../mixin.erp5.OOoDocumentExtensibleTraversableMixin.py | 2 +- .../portal_components/document.erp5.WebSection.py | 2 +- product/ERP5Type/Base.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bt5/erp5_base/MixinTemplateItem/portal_components/mixin.erp5.OOoDocumentExtensibleTraversableMixin.py b/bt5/erp5_base/MixinTemplateItem/portal_components/mixin.erp5.OOoDocumentExtensibleTraversableMixin.py index 47fe8952c8..3409427774 100644 --- a/bt5/erp5_base/MixinTemplateItem/portal_components/mixin.erp5.OOoDocumentExtensibleTraversableMixin.py +++ b/bt5/erp5_base/MixinTemplateItem/portal_components/mixin.erp5.OOoDocumentExtensibleTraversableMixin.py @@ -49,7 +49,6 @@ class OOoDocumentExtensibleTraversableMixin(BaseExtensibleTraversableMixin): web_cache_kw = {'name': name, 'format': EMBEDDED_FORMAT} try: - self._convert(format='html') view = _ViewEmulator().__of__(self) # call caching policy manager. _setCacheHeaders(view, web_cache_kw) @@ -57,6 +56,7 @@ class OOoDocumentExtensibleTraversableMixin(BaseExtensibleTraversableMixin): # no content if _checkConditionalGET(view, web_cache_kw): return '' + self._convert(format='html') mime, data = self.getConversion(format=EMBEDDED_FORMAT, filename=name) document = OFSFile(name, name, data, content_type=mime).__of__(self.aq_parent) except (NotConvertedError, ConversionError, KeyError): diff --git a/bt5/erp5_web/DocumentTemplateItem/portal_components/document.erp5.WebSection.py b/bt5/erp5_web/DocumentTemplateItem/portal_components/document.erp5.WebSection.py index 26176c1d5d..ff5ff9c0a3 100644 --- a/bt5/erp5_web/DocumentTemplateItem/portal_components/document.erp5.WebSection.py +++ b/bt5/erp5_web/DocumentTemplateItem/portal_components/document.erp5.WebSection.py @@ -252,7 +252,6 @@ class WebSection(Domain, DocumentExtensibleTraversableMixin): if custom_render_method_id is not None: if document is None: document = self - result = getattr(document, custom_render_method_id)() view = _ViewEmulator().__of__(self) # call caching policy manager. _setCacheHeaders(view, {}) @@ -260,6 +259,7 @@ class WebSection(Domain, DocumentExtensibleTraversableMixin): # no content if _checkConditionalGET(view, extra_context={}): return '' + result = getattr(document, custom_render_method_id)() return result elif document is not None: return document() diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index a71a5634da..9f7802b52f 100644 --- a/product/ERP5Type/Base.py +++ b/product/ERP5Type/Base.py @@ -2516,7 +2516,6 @@ class Base( security.declareProtected(Permissions.View, 'view') def view(self): """Returns the default view even if index_html is overridden""" - result = self._renderDefaultView('view') view = _ViewEmulator().__of__(self) # call caching policy manager. _setCacheHeaders(view, {}) @@ -2524,6 +2523,7 @@ class Base( # no content if _checkConditionalGET(view, extra_context={}): return '' + result = self._renderDefaultView('view') return result # Default views - the default security in CMFCore -- 2.30.9