diff --git a/product/ERP5Type/patches/CMFCoreUtils.py b/product/ERP5Type/patches/CMFCoreUtils.py index 172d6094d4a24d5e00e6bb378910c3bdda1bac96..21fd842e18ad9dd00a764ebac926316b067b4caf 100644 --- a/product/ERP5Type/patches/CMFCoreUtils.py +++ b/product/ERP5Type/patches/CMFCoreUtils.py @@ -17,56 +17,6 @@ from Products.CMFCore.utils import SUBTEMPLATE from zope.component import queryUtility from Products.CMFCore.interfaces import ICachingPolicyManager -# patch _setCacheHeaders so that existing headers are not overridden -def _setCacheHeaders(obj, extra_context): - """Set cache headers according to cache policy manager for the obj.""" - REQUEST = getattr(obj, 'REQUEST', None) - if REQUEST is not None: - call_count = getattr(REQUEST, SUBTEMPLATE, 1) - 1 - setattr(REQUEST, SUBTEMPLATE, call_count) - if call_count != 0: - return - - # cleanup - delattr(REQUEST, SUBTEMPLATE) - - content = aq_parent(obj) - manager = queryUtility(ICachingPolicyManager) - if manager is None: - return - - view_name = obj.getId() - headers = manager.getHTTPCachingHeaders( - content, view_name, extra_context - ) - RESPONSE = REQUEST['RESPONSE'] - for key, value in headers: - if key == 'ETag': - RESPONSE.setHeader(key, value, literal=1) - # PATCH BEGIN: respect existing Cache-Control header if exists - if key.lower() == 'cache-control': - cache_control = RESPONSE.getHeader('cache-control') - if cache_control: - existing_key_list = \ - [e.split('=', 2)[0].strip().lower() for e in \ - cache_control.split(',')] - for e in value.split(','): - if e.split('=', 2)[0].strip().lower() not in existing_key_list: - cache_control += ', %s' % e.strip() - else: - cache_control = value - RESPONSE.setHeader(key, cache_control) - # PATCH END - else: - RESPONSE.setHeader(key, value) - if headers: - RESPONSE.setHeader('X-Cache-Headers-Set-By', - 'CachingPolicyManager: %s' % - '/'.join(manager.getPhysicalPath())) - -import Products.CMFCore.utils -Products.CMFCore.utils._setCacheHeaders = _setCacheHeaders - # To load all erp5.component.tool.* so that they can be added through 'ERP5 # Site' => Add 'ERP5 Tool'. from Products.CMFCore.utils import addInstanceForm @@ -99,4 +49,5 @@ def manage_addToolForm(self, REQUEST): factory_types_list=tl, factory_need_id=0) +import Products.CMFCore.utils Products.CMFCore.utils.manage_addToolForm = manage_addToolForm