From 0b4169bfbe4320a349208057c30b79829ccd0d48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20W=C3=B6lfel?= <klaus@nexedi.com> Date: Thu, 28 Jul 2016 14:46:09 +0000 Subject: [PATCH] erp5_core: Add callable tool Conflicts: product/ERP5/bootstrap/erp5_core/bt/template_document_id_list --- .../portal_types/Callable%20Tool/view.xml | 81 ++++++++ .../portal_actions/callable_tool.xml | 71 +++++++ .../document.erp5.CallableTool.py | 52 +++++ .../document.erp5.CallableTool.xml | 124 +++++++++++ .../allowed_content_types.xml | 4 + .../portal_types/Callable%20Tool.xml | 121 +++++++++++ .../CallableTool_viewCallableList.xml | 131 ++++++++++++ .../CallableTool_viewCallableList/listbox.xml | 193 ++++++++++++++++++ ...Script_getRedirectParameterDictAfterAdd.py | 3 + ...cript_getRedirectParameterDictAfterAdd.xml | 62 ++++++ .../PythonScript_getViewActionUrl.py | 1 + .../PythonScript_getViewActionUrl.xml | 62 ++++++ .../erp5_core/bt/template_action_path_list | 2 + .../erp5_core/bt/template_document_id_list | 4 +- ...late_portal_type_allowed_content_type_list | 2 + .../erp5_core/bt/template_portal_type_id_list | 1 + 16 files changed, 913 insertions(+), 1 deletion(-) create mode 100644 product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Callable%20Tool/view.xml create mode 100644 product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/portal_actions/callable_tool.xml create mode 100644 product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.py create mode 100644 product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.xml create mode 100644 product/ERP5/bootstrap/erp5_core/PortalTypeTemplateItem/portal_types/Callable%20Tool.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList/listbox.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.py create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.xml create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.py create mode 100644 product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.xml diff --git a/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Callable%20Tool/view.xml b/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Callable%20Tool/view.xml new file mode 100644 index 0000000000..6077b31bc7 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/Callable%20Tool/view.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/CallableTool_viewCallableList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/portal_actions/callable_tool.xml b/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/portal_actions/callable_tool.xml new file mode 100644 index 0000000000..786f0ddcfe --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/ActionTemplateItem/portal_types/portal_actions/callable_tool.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>callable_tool</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Modify portal content</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>3.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Manage Callables</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${portal_url}/portal_callables/view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.py b/product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.py new file mode 100644 index 0000000000..58f3e7bbee --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2016 Nexedi SA and Contributors. All Rights Reserved. +# Jean-Paul Smets <jp@nexedi.com> +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## +from Products.ERP5Type.Core.Folder import Folder + +class CallableTool(Folder): + """ + XXXXX + + """ + id = 'portal_callables' + meta_type = 'ERP5 Callable Tool' + portal_type = 'Callable Tool' + + def _setOb(self, id, object): + """ + Update portal_skins cache with the new files. + """ + Folder._setOb(self, id, object) + portal_skins = getattr(self, 'portal_skins', None) + if portal_skins is None: + return + portal_skins = self.getPortalObject().portal_skins + _updateCacheEntry = getattr(portal_skins.aq_base, '_updateCacheEntry', None) + if _updateCacheEntry is None: + return + _updateCacheEntry(self.id, id) diff --git a/product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.xml b/product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.xml new file mode 100644 index 0000000000..05d5e33f3e --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.CallableTool.xml @@ -0,0 +1,124 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Document Component" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_recorded_property_dict</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>CallableTool</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>A tool that can be used to add scripts and other callable methods (including ZSQL templates and HTML templates) to ERP5. It replaces portal_skins</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>document.erp5.CallableTool</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Document Component</string> </value> + </item> + <item> + <key> <string>sid</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>text_content_error_message</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>text_content_warning_message</string> </key> + <value> + <tuple> + <string>W: 40, 23: Redefining built-in \'object\' (redefined-builtin)</string> + <string>W: 40, 19: Redefining built-in \'id\' (redefined-builtin)</string> + </tuple> + </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>erp5</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>component_validation_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>validate</string> </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>validated</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml b/product/ERP5/bootstrap/erp5_core/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml index ca0f166cac..d951b53c8b 100644 --- a/product/ERP5/bootstrap/erp5_core/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml +++ b/product/ERP5/bootstrap/erp5_core/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml @@ -31,6 +31,10 @@ <portal_type id="Cache Tool"> <item>Cache Factory</item> </portal_type> + <portal_type id="Callable Tool"> + <item>PyData Script</item> + <item>Python Script</item> + </portal_type> <portal_type id="Category"> <item>Category</item> </portal_type> diff --git a/product/ERP5/bootstrap/erp5_core/PortalTypeTemplateItem/portal_types/Callable%20Tool.xml b/product/ERP5/bootstrap/erp5_core/PortalTypeTemplateItem/portal_types/Callable%20Tool.xml new file mode 100644 index 0000000000..986d2cae9b --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/PortalTypeTemplateItem/portal_types/Callable%20Tool.xml @@ -0,0 +1,121 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_property_domain_dict</string> </key> + <value> + <dictionary> + <item> + <key> <string>short_title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>content_icon</string> </key> + <value> <string>folder_icon.gif</string> </value> + </item> + <item> + <key> <string>content_meta_type</string> </key> + <value> <string>ERP5Type Folder</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>A Tool that gradually replaces portal_skins. For now, it can contain Python Scripts that can be defined by users.</string> </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addFolder</string> </value> + </item> + <item> + <key> <string>filter_content_types</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Callable Tool</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>CallableTool</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>short_title</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>title</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList.xml new file mode 100644 index 0000000000..625b958781 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list> + <string>listbox</string> + </list> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CallableTool_viewCallableList</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>CallableTool_viewCallableList</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_list</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Callables</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList/listbox.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList/listbox.xml new file mode 100644 index 0000000000..1eb8a7ee75 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/CallableTool_viewCallableList/listbox.xml @@ -0,0 +1,193 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>all_columns</string> + <string>columns</string> + <string>editable_columns</string> + <string>title</string> + <string>url_columns</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>all_columns</string> </key> + <value> + <list> + <tuple> + <string>creation_date</string> + <string>Creation Date</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>Modification Date</string> + </tuple> + <tuple> + <string>owner_title</string> + <string>Owner</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>all_editable_columns</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>columns</string> </key> + <value> + <list> + <tuple> + <string>id</string> + <string>ID</string> + </tuple> + <tuple> + <string>reference</string> + <string>Reference</string> + </tuple> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>description</string> + <string>Description</string> + </tuple> + <tuple> + <string>portal_type</string> + <string>Type</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>editable_columns</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_list_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Callables</string> </value> + </item> + <item> + <key> <string>url_columns</string> </key> + <value> + <list> + <tuple> + <string>id</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + <tuple> + <string>reference</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + <tuple> + <string>title</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + <tuple> + <string>description</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + <tuple> + <string>creation_date</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + <tuple> + <string>owner_title</string> + <string>PythonScript_getViewActionUrl</string> + </tuple> + </list> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.py b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.py new file mode 100644 index 0000000000..a4481a2102 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.py @@ -0,0 +1,3 @@ +# This is the default method for a redirection after being added. +redirect_url = '%s/%s' %(context.absolute_url(), 'view') +return dict(redirect_url=redirect_url, selection_index=None, selection_name=None) diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.xml new file mode 100644 index 0000000000..d251e45763 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getRedirectParameterDictAfterAdd.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>folder, **kw</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PythonScript_getRedirectParameterDictAfterAdd</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.py b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.py new file mode 100644 index 0000000000..aba0688b84 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.py @@ -0,0 +1 @@ +return "%s/%s" %(context.getId(), "view") diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.xml new file mode 100644 index 0000000000..0d466b7d7d --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/PythonScript_getViewActionUrl.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>**kw</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>PythonScript_getViewActionUrl</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list b/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list index ddd2b47c55..fdf27a211d 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_action_path_list @@ -43,6 +43,7 @@ Cache Factory | statistics Cache Factory | view Cache Tool | statistics Cache Tool | view +Callable Tool | view Category Acquired Membership State Constraint | predicate Category Acquired Membership State Constraint | view Category Existence Constraint | predicate @@ -139,6 +140,7 @@ Trash Tool | view Types Tool | view ZODB Continuous Increasing Id Generator | view portal_actions | bt_tool +portal_actions | callable_tool portal_actions | category_tool portal_actions | component_tool portal_actions | create_module diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_document_id_list b/product/ERP5/bootstrap/erp5_core/bt/template_document_id_list index bed0ccc2e0..9bec677d04 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_document_id_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_document_id_list @@ -25,4 +25,6 @@ document.erp5.TransformPptxToOdp document.erp5.TransformPptxToPpty document.erp5.TransformPptyToPptx document.erp5.TransformImageToPcx -document.erp5.TransformImageToBmp \ No newline at end of file +document.erp5.TransformImageToBmp +document.erp5.CallableTool +document.erp5.ScriptConstraint diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_allowed_content_type_list b/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_allowed_content_type_list index 680082233b..2986e1c60f 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_allowed_content_type_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_allowed_content_type_list @@ -12,6 +12,8 @@ Cache Factory | Cache Bag Cache Factory | Distributed Ram Cache Cache Factory | Ram Cache Cache Tool | Cache Factory +Callable Tool | PyData Script +Callable Tool | Python Script Category Tool | Base Category Category | Category Component Tool | Document Component diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_id_list b/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_id_list index 6d04077a01..30b42b2705 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_id_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_id_list @@ -18,6 +18,7 @@ Business Template Cache Bag Cache Factory Cache Tool +Callable Tool Category Category Acquired Membership State Constraint Category Existence Constraint -- 2.30.9