diff --git a/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_renderSimpleView.xml b/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_renderSimpleView.xml index 6f4cfd7c6274cd9a51d8f3841cc11de9ce82f148..56c39209b2bd891ace34b36d486a942e41d3f586 100644 --- a/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_renderSimpleView.xml +++ b/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_renderSimpleView.xml @@ -62,9 +62,14 @@ if skin_name and skin_name != \'None\': # make_query serializes None as \'None\' with portal.Localizer.translationContext(localizer_language):\n report_data = getattr(context, deferred_style_dialog_method)(**params)\n \n - attachment_name = [x[len(\' filename=\'):] for x in (request.RESPONSE.getHeader(\n - \'content-disposition\') or \'\').split(\';\')\n - if x.startswith(\' filename=\')][0]\n + attachment_name_list = [x[len(\' filename=\'):] for x in (request.RESPONSE.getHeader(\n + \'content-disposition\') or \'\').split(\';\')\n + if x.startswith(\' filename=\')]\n + if attachment_name_list:\n + attachment_name, = attachment_name_list\n + else:\n + assert \'inline\' in (request.RESPONSE.getHeader(\'content-disposition\') or \'\')\n + attachment_name = \'index.html\'\n if attachment_name.startswith(\'"\'):\n attachment_name = attachment_name[1:]\n if attachment_name.endswith(\'"\'):\n diff --git a/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_report.xml b/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_report.xml index c87386eab585242515f556c59cd52919f899f723..a0aa85ad38057e9ce00867c6ef9103f924fc3136 100644 --- a/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_report.xml +++ b/bt5/erp5_deferred_style/SkinTemplateItem/portal_skins/erp5_deferred_style_core/Base_report.xml @@ -82,9 +82,14 @@ with portal.Localizer.translationContext(localizer_language):\n report_method=dummyReportMethod,\n form=portal.restrictedTraverse(form_path)))\n \n - attachment_name = [x[len(\' filename=\'):] for x in (request.RESPONSE.getHeader(\n + attachment_name_list = [x[len(\' filename=\'):] for x in (request.RESPONSE.getHeader(\n \'content-disposition\') or \'\').split(\';\')\n - if x.startswith(\' filename=\')][0]\n + if x.startswith(\' filename=\')]\n + if attachment_name_list:\n + attachment_name, = attachment_name_list\n + else:\n + assert \'inline\' in (request.RESPONSE.getHeader(\'content-disposition\') or \'\')\n + attachment_name = \'index.html\'\n if attachment_name.startswith(\'"\'):\n attachment_name = attachment_name[1:]\n if attachment_name.endswith(\'"\'):\n diff --git a/product/ERP5/mixin/downloadable.py b/product/ERP5/mixin/downloadable.py index 3f1c574e7c55b693586147d037bdef694b3a08ea..9f97426db68f94015a10ca8158ee41c6a780bd16 100644 --- a/product/ERP5/mixin/downloadable.py +++ b/product/ERP5/mixin/downloadable.py @@ -127,6 +127,8 @@ class DownloadableMixin: RESPONSE.setHeader('Content-Disposition', 'attachment; filename="%s"' % filename) RESPONSE.setHeader('Accept-Ranges', 'bytes') + else: + RESPONSE.setHeader('Content-Disposition', 'inline') return str(data) security.declareProtected(Permissions.AccessContentsInformation,