From 1fe01629fa369258a56b39f863bd1f003fd53a9d Mon Sep 17 00:00:00 2001 From: Georgios Dagkakis <georgios.dagkakis@nexedi.com> Date: Thu, 28 Jan 2021 08:07:37 +0000 Subject: [PATCH] erp5_web_service: Migrate DocumentConnection to components This was removed from products in previous commits --- .../module.erp5.DocumentConnection.py | 71 ++++++++++ .../module.erp5.DocumentConnection.xml | 133 ++++++++++++++++++ .../tool.erp5.WebServiceTool.py | 1 + .../bt/template_module_component_id_list | 3 +- 4 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.py create mode 100644 bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.xml diff --git a/bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.py b/bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.py new file mode 100644 index 0000000000..86a1e965ca --- /dev/null +++ b/bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.py @@ -0,0 +1,71 @@ +############################################################################## +# +# Copyright (c) 2010 Nexedi SARL and Contributors. All Rights Reserved. +# Aurelien Calonne <aurel@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 erp5.component.tool.WebServiceTool import ConnectionError +from Products.ERP5.ERP5Site import getSite + +class MethodWrapper(object): + + def __init__(self, method, conn): + self._method = method + self._conn = conn + + def __call__(self, *args, **kw): + portal = getSite() + method_name = "DocumentConnector_%s" %(self._method) + method = getattr(portal, method_name, None) + kw["reference"] = self._conn.reference + if method: + response = method(*args, **kw) + return method.absolute_url(), response +## try: +## except ValueError, msg: +## raise ConnectionError(msg) +## except Exception, msg: +## raise ConnectionError(msg) + else: + raise ConnectionError("Method %s does not exist" %(method_name)) + +class DocumentConnection: + """ + Holds a connection to the document module. + """ + __allow_access_to_unprotected_subobjects__ = 1 + + def __init__(self, url, *args, **kw): + """ + """ + self.reference=url + + def connect(self): + """Get a handle to a remote connection.""" + return self + + def __getattr__(self, name): + if not name.startswith("_"): + return MethodWrapper(name, self) diff --git a/bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.xml b/bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.xml new file mode 100644 index 0000000000..07afa6032f --- /dev/null +++ b/bt5/erp5_web_service/ModuleComponentTemplateItem/portal_components/module.erp5.DocumentConnection.xml @@ -0,0 +1,133 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Module 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>DocumentConnection</string> </value> + </item> + <item> + <key> <string>default_source_reference</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>module.erp5.DocumentConnection</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Module 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/> + </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.Workflow"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_log</string> </key> + <value> + <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> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_service/ToolComponentTemplateItem/portal_components/tool.erp5.WebServiceTool.py b/bt5/erp5_web_service/ToolComponentTemplateItem/portal_components/tool.erp5.WebServiceTool.py index 55e9bac87c..cd5cb58ee0 100644 --- a/bt5/erp5_web_service/ToolComponentTemplateItem/portal_components/tool.erp5.WebServiceTool.py +++ b/bt5/erp5_web_service/ToolComponentTemplateItem/portal_components/tool.erp5.WebServiceTool.py @@ -53,6 +53,7 @@ handler_module_dict = { 'soap_wsdl': 'SOAPWSDLConnection', 'sftp' : "SFTPConnection", 'sql' : "SQLConnection", + 'document' : "DocumentConnection", } for handler_id, module_id in handler_module_dict.iteritems(): # Ignore non-functionnal plugins. diff --git a/bt5/erp5_web_service/bt/template_module_component_id_list b/bt5/erp5_web_service/bt/template_module_component_id_list index 302beb6c32..a697f3a2e3 100644 --- a/bt5/erp5_web_service/bt/template_module_component_id_list +++ b/bt5/erp5_web_service/bt/template_module_component_id_list @@ -2,4 +2,5 @@ module.erp5.SFTPConnection module.erp5.SOAPConnection module.erp5.SOAPWSDLConnection module.erp5.SQLConnection -module.erp5.XMLRPCConnection \ No newline at end of file +module.erp5.XMLRPCConnection +module.erp5.DocumentConnection \ No newline at end of file -- 2.30.9