From b9befcd7c4ffdb5a80054bd37d1a167693d8a675 Mon Sep 17 00:00:00 2001 From: Ivan Tyagov <ivan@nexedi.com> Date: Mon, 14 May 2007 11:31:38 +0000 Subject: [PATCH] Catch exception during content ingestion and show more friendly error message. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@14473 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../WebSite_contributeContent.xml | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSite_contributeContent.xml b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSite_contributeContent.xml index 0fe5d31f0e..bf84014e56 100644 --- a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSite_contributeContent.xml +++ b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSite_contributeContent.xml @@ -87,32 +87,39 @@ if contribute_portal_type:\n if contribute_file is not None:\n kw[\'file\'] = contribute_file\n \n -kw[\'discover_metadata\'] = 0 # We want to discover metadata synchronously\n +# We want to discover metadata synchronously\n +kw[\'discover_metadata\'] = 0 \n \n -#try:\n if 1:\n - new_content = context.portal_contributions.newContent(**kw)\n - if hasattr(contribute_file, \'filename\'):\n - file_name = contribute_file.filename\n - else:\n - file_name = None\n -\n - merged_content = new_content.discoverMetadata(file_name=file_name) # Consider putting an exception handler\n + editable_mode = 1\n + file_name = getattr(contribute_file, \'filename\', None)\n + # try to ingest file\n + try:\n + new_content = context.portal_contributions.newContent(**kw)\n + merged_content = new_content.discoverMetadata(file_name=file_name)\n + except Exception, e:\n + # there are errors during ingestion content\n + msg = \'There was a problem during ingestion. Please try again later.\'\n + msg = context.Base_translateString(msg)\n + return context.Base_redirect(\'WebSite_viewAsSCALE\', \n + keep_items=dict(portal_status_message=msg,\n + editable_mode=0))\n + # successful ingestion, show appropriate message\n if merged_content is not new_content:\n msg = context.Base_translateString(\'Document successfully updated\')\n target = merged_content\n else:\n msg = context.Base_translateString(\'Document successfully created\')\n target = new_content\n - editable_mode = 1\n else:\n -#except Exception, e:\n msg = \'There was a problem: ${exception}\'\n msg = context.Base_translateString(msg, mapping=dict(exception=str(e)))\n target = context\n editable_mode = 0\n \n -return target.Base_redirect(\'view\', keep_items=dict(portal_status_message=msg, editable_mode=editable_mode))\n +return target.Base_redirect(\'view\', \n + keep_items=dict(portal_status_message=msg, \n + editable_mode=editable_mode))\n </string> </value> </item> <item> @@ -127,12 +134,6 @@ return target.Base_redirect(\'view\', keep_items=dict(portal_status_message=msg, <none/> </value> </item> - <item> - <key> <string>_owner</string> </key> - <value> - <none/> - </value> - </item> <item> <key> <string>_params</string> </key> <value> <string>contribute_file=None, contribute_classification=None, contribute_source_project=None, contribute_portal_type=None, **kw</string> </value> @@ -168,19 +169,20 @@ return target.Base_redirect(\'view\', keep_items=dict(portal_status_message=msg, <string>kw</string> <string>_write_</string> <string>None</string> + <string>editable_mode</string> + <string>getattr</string> + <string>file_name</string> <string>_apply_</string> <string>_getattr_</string> <string>context</string> <string>new_content</string> - <string>hasattr</string> - <string>file_name</string> <string>merged_content</string> + <string>Exception</string> + <string>e</string> <string>msg</string> - <string>target</string> - <string>editable_mode</string> <string>dict</string> + <string>target</string> <string>str</string> - <string>e</string> </tuple> </value> </item> -- 2.30.9