diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_callDialogMethod.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_callDialogMethod.xml index c878d60136bc9ae6c744f4c469d30bb37e576fb2..6aa746ed9d00ce229e60a4bad85b6046f082e8e4 100644 --- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_callDialogMethod.xml +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_callDialogMethod.xml @@ -86,7 +86,8 @@ def isListBox(field):\n from Products.Formulator.Errors import FormValidationError\n from ZTUtils import make_query\n \n -request_form = context.REQUEST.form\n +request = container.REQUEST\n +request_form = request.form\n error_message = \'\'\n \n # Make this script work alike wether called from another script or by a request\n @@ -156,16 +157,15 @@ try:\n # It is necessary to force editable_mode before validating\n # data. Otherwise, field appears as non editable.\n # This is the pending of form_dialog.\n - request = context.REQUEST\n editable_mode = request.get(\'editable_mode\', 1)\n request.set(\'editable_mode\', 1)\n - form.validate_all_to_request(context.REQUEST)\n + form.validate_all_to_request(request)\n request.set(\'editable_mode\', editable_mode)\n except FormValidationError, validation_errors:\n # Pack errors into the request\n field_errors = form.ErrorFields(validation_errors)\n - context.REQUEST.set(\'field_errors\', field_errors)\n - return form(context.REQUEST)\n + request.set(\'field_errors\', field_errors)\n + return form(request)\n \n # Use REQUEST.redirect if possible. It will not be possible if at least one of these is true :\n # * we got an import_file,\n @@ -177,7 +177,7 @@ listbox_id_list = [] # There should not be more than one listbox - but this give file_id_list = [] # For uploaded files.\n for field in form.get_fields():\n k = field.id\n - v = context.REQUEST.get(k, MARKER)\n + v = request.get(k, MARKER)\n if v is not MARKER:\n if isListBox(field):\n listbox_id_list.append(k)\n @@ -243,7 +243,13 @@ url_params_string = make_query(clean_kw)\n # XXX: We always redirect in report mode to make sure portal_skin\n # parameter is taken into account by SkinTool.\n # If url is too long, we do not redirect to avoid crash.\n -if (not(can_redirect) or len(url_params_string) > 2000) and dialog_category != "object_report": # XXX: 2000 is an arbitrary value resulted from trial and error.\n +# XXX: 2000 is an arbitrary value resulted from trial and error.\n +if (not(can_redirect) or len(url_params_string) > 2000):\n + if \'portal_skin\' in clean_kw:\n + new_skin_name = clean_kw[\'portal_skin\']\n + context.getPortalObject().portal_skins.changeSkin(new_skin_name)\n + request.set(\'portal_skin\', new_skin_name)\n +\n # If we cannot redirect, then call the form directly.\n dialog_form = getattr(context, dialog_method)\n # XXX: this is a hack that should not be needed anymore with the new listbox.\n @@ -251,7 +257,7 @@ if (not(can_redirect) or len(url_params_string) > 2000) and dialog_category != " # that depend on it (eg. Show All). This is really related to\n # current ListBox implementation which edit Selection\'s last_url\n # with the content of REQUEST.URL\n - context.REQUEST.set(\'URL\', \'%s/%s\' % (context.absolute_url(), dialog_method))\n + request.set(\'URL\', \'%s/%s\' % (context.absolute_url(), dialog_method))\n return dialog_form(**kw)\n \n if error_message != \'\':\n @@ -269,7 +275,7 @@ else:\n , dialog_method\n )\n \n -return context.REQUEST.RESPONSE.redirect(redirect_url)\n +return request.RESPONSE.redirect(redirect_url)\n \n # vim: syntax=python\n @@ -288,6 +294,12 @@ return context.REQUEST.RESPONSE.redirect(redirect_url)\n <none/> </value> </item> + <item> + <key> <string>_owner</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>_params</string> </key> <value> <string>dialog_method, dialog_id, dialog_category=\'\', **kw</string> </value> @@ -326,16 +338,17 @@ return context.REQUEST.RESPONSE.redirect(redirect_url)\n <string>ZTUtils</string> <string>make_query</string> <string>_getattr_</string> - <string>context</string> + <string>container</string> + <string>request</string> <string>request_form</string> <string>error_message</string> + <string>context</string> <string>_getitem_</string> <string>value</string> <string>None</string> <string>getattr</string> <string>form</string> <string>hasattr</string> - <string>request</string> <string>editable_mode</string> <string>validation_errors</string> <string>field_errors</string> @@ -368,6 +381,7 @@ return context.REQUEST.RESPONSE.redirect(redirect_url)\n <string>selected_uids</string> <string>clean_kw</string> <string>url_params_string</string> + <string>new_skin_name</string> <string>dialog_form</string> <string>_apply_</string> <string>redirect_url</string> diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision index 26f252bdd87e3a3bcbabf1b8ad536cd027dc5e5e..4aeea8c347a8635cbeae91d0ec2df1c15958527f 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/revision +++ b/product/ERP5/bootstrap/erp5_core/bt/revision @@ -1 +1 @@ -649 \ No newline at end of file +650 \ No newline at end of file