diff --git a/bt5/erp5_crm/ActionTemplateItem/portal_types/Note/create_response.xml b/bt5/erp5_crm/ActionTemplateItem/portal_types/Note/create_response.xml index 41432c2e820d32555ebb5af19c530533b97a5e3e..08e9453b6e44fa8cead558b9b7e9df0f20b63fa4 100644 --- a/bt5/erp5_crm/ActionTemplateItem/portal_types/Note/create_response.xml +++ b/bt5/erp5_crm/ActionTemplateItem/portal_types/Note/create_response.xml @@ -16,13 +16,13 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>action_type/object_action</string> + <string>action_type/object_jio_action</string> </tuple> </value> </item> <item> <key> <string>category</string> </key> - <value> <string>object_action</string> </value> + <value> <string>object_jio_action</string> </value> </item> <item> <key> <string>condition</string> </key> diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_updateCreateResponse.py b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_updateCreateResponse.py index 59948cd16eb6f5e86314520b2838b9c56d35f7e8..d96103432f912fa91dd0db6c9bfe244513bbbd5f 100644 --- a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_updateCreateResponse.py +++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/Event_updateCreateResponse.py @@ -20,9 +20,9 @@ if response_event_notification_message: # XXX this relies on formulator internals, we force the variables in request and # re-render the form. request = container.REQUEST - request.set('your_response_event_notification_message', '') - request.set('your_response_event_title', temp_event.getTitle()) - request.set('your_response_event_text_content', temp_event.getTextContent()) - request.set('your_response_event_resource', temp_event.getResource()) - -return context.Event_viewCreateResponseDialog() + request.form['your_response_event_notification_message'] = '' + request.form['your_response_event_title'] = temp_event.getTitle() + request.form['your_response_event_text_content'] = temp_event.getTextContent() + request.form['your_response_event_resource'] = temp_event.getResource() + +return context.Base_renderForm('Event_viewCreateResponseDialog') diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite.xml b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite.xml new file mode 100644 index 0000000000000000000000000000000000000000..9eee4d75191d1cda14f3c0f9443df9897f2435f1 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Zuite" module="Products.Zelenium.zuite"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>renderjs_ui_crm_action_zuite</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponse.xml b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponse.xml new file mode 100644 index 0000000000000000000000000000000000000000..4bbbfcef8112bcaea52e32ca433ff6c3cda73009 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponse.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <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_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testCRMCreateResponse</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponse.zpt b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponse.zpt new file mode 100644 index 0000000000000000000000000000000000000000..ad3653401b8cb6aa737c8a968274ad642f7e78a1 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponse.zpt @@ -0,0 +1,60 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test Form View Editable Save Action</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test Default Module View</td></tr> +</thead><tbody> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/init" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/prepare_data" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/view_create_response_dialog" /> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'Re: erp5_crm_renderjs_ui_test_event_title', + 'field_your_response_event_portal_type': 'Note', + 'field_your_response_event_resource': '', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'send', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p><br></p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_response_dialog_content" /> +</tal:block> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_your_response_event_portal_type': 'Letter', + 'field_your_response_event_resource': '', + 'field_your_response_event_start_date': '2010-01-01T00:00:00', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'draft', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p>Foo<br>Bar</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/fill_create_response_dialog_content" /> +</tal:block> + +<!-- Header has a save button --> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" /> + +<tal:block tal:define="notification_configuration python: {'class': 'success', + 'text': 'Response Created.'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" /> +</tal:block> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block tal:define="response_configuration python: {'field_my_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_my_portal_type': 'Letter', + 'field_my_resource': '', + 'field_my_start_date': '2010-01-01T00:00:00', + 'simulation_state': 'Draft', + 'field_my_source_title': 'erp5_crm_renderjs_ui_test_agent_title', + 'field_my_destination_title': 'erp5_crm_renderjs_ui_test_customer_title', + 'field_my_text_content': '<p>Foo<br>Bar</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_response_content" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponseFromNotificationMessage.xml b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponseFromNotificationMessage.xml new file mode 100644 index 0000000000000000000000000000000000000000..f73727a3c69f8d161e8d56517d752595a06687a7 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponseFromNotificationMessage.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <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_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testCRMCreateResponseFromNotificationMessage</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponseFromNotificationMessage.zpt b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponseFromNotificationMessage.zpt new file mode 100644 index 0000000000000000000000000000000000000000..6f20dd29c9f0eb389e1fae93abe3582cace04b6e --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMCreateResponseFromNotificationMessage.zpt @@ -0,0 +1,60 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test Form View Editable Save Action</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test Default Module View</td></tr> +</thead><tbody> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/init" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/prepare_data" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/view_create_response_dialog" /> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'Re: erp5_crm_renderjs_ui_test_event_title', + 'field_your_response_event_portal_type': 'Note', + 'field_your_response_event_resource': '', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'send', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p><br></p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_response_dialog_content" /> +</tal:block> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_your_response_event_portal_type': 'Letter', + 'field_your_response_event_resource': '', + 'field_your_response_event_start_date': '2010-01-01T00:00:00', + 'field_your_response_event_notification_message': 'erp5_crm_renderjs_ui_test_notification_reference', + 'field_your_response_workflow_action': 'draft', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p>Foo<br>Bar</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/fill_create_response_dialog_content" /> +</tal:block> + +<!-- Header has a save button --> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" /> + +<tal:block tal:define="notification_configuration python: {'class': 'success', + 'text': 'Response Created.'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" /> +</tal:block> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block tal:define="response_configuration python: {'field_my_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_my_portal_type': 'Letter', + 'field_my_resource': '', + 'field_my_start_date': '2010-01-01T00:00:00', + 'simulation_state': 'Draft', + 'field_my_source_title': 'erp5_crm_renderjs_ui_test_agent_title', + 'field_my_destination_title': 'erp5_crm_renderjs_ui_test_customer_title', + 'field_my_text_content': '<p>No pbl. We will solve your issue.</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_response_content" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialog.xml b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialog.xml new file mode 100644 index 0000000000000000000000000000000000000000..1c7cf41f0615be0c1f7a88c87ae03e4d768d1e60 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialog.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <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_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testCRMUpdateCreateResponseDialog</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialog.zpt b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialog.zpt new file mode 100644 index 0000000000000000000000000000000000000000..695f394c3783acb77c0ad15d9b256fe1762720dc --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialog.zpt @@ -0,0 +1,60 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test Form View Editable Save Action</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test Default Module View</td></tr> +</thead><tbody> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/init" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/prepare_data" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/view_create_response_dialog" /> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'Re: erp5_crm_renderjs_ui_test_event_title', + 'field_your_response_event_portal_type': 'Note', + 'field_your_response_event_resource': '', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'send', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p><br></p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_response_dialog_content" /> +</tal:block> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_your_response_event_portal_type': 'Letter', + 'field_your_response_event_resource': '', + 'field_your_response_event_start_date': '2010-01-01T00:00:00', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'draft', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p>Foo<br>Bar</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/fill_create_response_dialog_content" /> +</tal:block> + +<!-- Header has a save button --> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/update_dialog" /> + +<tal:block tal:define="notification_configuration python: {'class': 'success', + 'text': 'Data received'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" /> +</tal:block> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_your_response_event_portal_type': 'Letter', + 'field_your_response_event_resource': '', + 'field_your_response_event_start_date': '2010-01-01T00:00:00', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'draft', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p>Foo<br>Bar</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_response_dialog_content" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialogFromNotificationMessage.xml b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialogFromNotificationMessage.xml new file mode 100644 index 0000000000000000000000000000000000000000..6fcd1de2638013ff9e58d44163021c4042cd1dd4 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialogFromNotificationMessage.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <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_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testCRMUpdateCreateResponseDialogFromNotificationMessage</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialogFromNotificationMessage.zpt b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialogFromNotificationMessage.zpt new file mode 100644 index 0000000000000000000000000000000000000000..8929534d83f701b2f032b5d81a91c8b17f27a432 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_crm_action_zuite/testCRMUpdateCreateResponseDialogFromNotificationMessage.zpt @@ -0,0 +1,60 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test Form View Editable Save Action</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test Default Module View</td></tr> +</thead><tbody> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/init" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/prepare_data" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/view_create_response_dialog" /> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'Re: erp5_crm_renderjs_ui_test_event_title', + 'field_your_response_event_portal_type': 'Note', + 'field_your_response_event_resource': '', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'send', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p><br></p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_response_dialog_content" /> +</tal:block> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'erp5_crm_renderjs_ui_test_response_title', + 'field_your_response_event_portal_type': 'Letter', + 'field_your_response_event_resource': '', + 'field_your_response_event_start_date': '2010-01-01T00:00:00', + 'field_your_response_event_notification_message': 'erp5_crm_renderjs_ui_test_notification_reference', + 'field_your_response_workflow_action': 'draft', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p>Foo<br>Bar</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/fill_create_response_dialog_content" /> +</tal:block> + +<!-- Header has a save button --> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/update_dialog" /> + +<tal:block tal:define="notification_configuration python: {'class': 'success', + 'text': 'Data received'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" /> +</tal:block> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block tal:define="dialog_content_configuration python: {'field_your_response_event_title': 'erp5_crm_renderjs_ui_test_notification_title', + 'field_your_response_event_portal_type': 'Letter', + 'field_your_response_event_resource': '', + 'field_your_response_event_start_date': '2010-01-01T00:00:00', + 'field_your_response_event_notification_message': '', + 'field_your_response_workflow_action': 'draft', + 'field_my_default_destination': 'person_module/erp5_crm_renderjs_ui_test_agent', + 'field_your_response_event_text_content': '<p>No pbl. We will solve your issue.</p>'}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_response_dialog_content" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test.xml b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test.xml new file mode 100644 index 0000000000000000000000000000000000000000..87a8dbafb2f878287a613851947a4ebe6cc607cd --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Folder" module="OFS.Folder"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>erp5_crm_renderjs_ui_test</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_createEvent.py b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_createEvent.py new file mode 100644 index 0000000000000000000000000000000000000000..6b5e9d9a29b58b73c8290da2ceb1ee598b9ee3a2 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_createEvent.py @@ -0,0 +1,59 @@ +from DateTime import DateTime + +portal = context.getPortalObject() + +person_portal_type = "Person" +customer_id = "erp5_crm_renderjs_ui_test_customer" +customer_title = "erp5_crm_renderjs_ui_test_customer_title" +agent_id = "erp5_crm_renderjs_ui_test_agent" +agent_title = "erp5_crm_renderjs_ui_test_agent_title" + +module = portal.getDefaultModule(person_portal_type) +customer = module.newContent( + portal_type=person_portal_type, + id=customer_id, + title=customer_title +) +agent = module.newContent( + portal_type=person_portal_type, + id=agent_id, + title=agent_title +) + +notification_message_portal_type = "Notification Message" +notification_message_id = "erp5_crm_renderjs_ui_test_notification" +notification_message_title = "erp5_crm_renderjs_ui_test_notification_title" +notification_message_reference = "erp5_crm_renderjs_ui_test_notification_reference" +notification_message_text_content = """No pbl. +We will solve your issue. +""" + +module = portal.getDefaultModule(notification_message_portal_type) +notification_message = module.newContent( + portal_type=notification_message_portal_type, + id=notification_message_id, + title=notification_message_title, + reference=notification_message_reference, + text_content=notification_message_text_content +) +notification_message.validate() + +event_portal_type = "Note" +event_id = "erp5_crm_renderjs_ui_test_event" +event_title = "erp5_crm_renderjs_ui_test_event_title" +event_text_content = """Hello, +I have an issue +""" + +module = portal.getDefaultModule(event_portal_type) +event = module.newContent( + portal_type=event_portal_type, + id=event_id, + title=event_title, + text_content=event_text_content, + source_value=customer, + destination_value=agent, +) +portal.portal_workflow.doActionFor(event, 'initial_stop_action') + +return "Event Created." diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_createEvent.xml b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_createEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..95e038f699fd3875363098bd0b2405863ce56f61 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_createEvent.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></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CRMRJSZuite_createEvent</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_deleteData.py b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_deleteData.py new file mode 100644 index 0000000000000000000000000000000000000000..785bfb681b64b51c4610b6db119996cb274b8ef2 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_deleteData.py @@ -0,0 +1,28 @@ +portal = context.getPortalObject() + +event_portal_type = "Note" +event_id = "erp5_crm_renderjs_ui_test_event" + +# Delete event +module = portal.getDefaultModule(event_portal_type) +if getattr(module, event_id, None) is not None: + module.manage_delObjects([event_id]) + +notification_message_portal_type = "Notification Message" +notification_message_id = "erp5_crm_renderjs_ui_test_notification" +# Delete Notification Message +module = portal.getDefaultModule(notification_message_portal_type) +if getattr(module, notification_message_id, None) is not None: + module.manage_delObjects([notification_message_id]) + +person_portal_type = "Person" +customer_id = "erp5_crm_renderjs_ui_test_customer" +agent_id = "erp5_crm_renderjs_ui_test_agent" + +# Delete person +module = portal.getDefaultModule(person_portal_type) +for person_id in (customer_id, agent_id): + if getattr(module, person_id, None) is not None: + module.manage_delObjects([person_id]) + +return "Deleted Successfully." diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_deleteData.xml b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_deleteData.xml new file mode 100644 index 0000000000000000000000000000000000000000..0c1939d27f67f687527ce40b8c499142d75dbc15 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_deleteData.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></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CRMRJSZuite_deleteData</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_setPreference.py b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_setPreference.py new file mode 100644 index 0000000000000000000000000000000000000000..9f88a8d33277d0eedfaff31910dd985d74d59007 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_setPreference.py @@ -0,0 +1,12 @@ +"""Set subversion working copy list and enable preference. + +This script is called by Products.ERP5Type.tests.runFunctionalTest to set +subversion working copy paths and conversion server address. +It's not meant to be called by zelenium tests directly. +""" +context.Zuite_setPreference('') +pref = context.portal_preferences.erp5_ui_test_preference + +pref.setPreferredTextEditor('fck_editor') + +return 'Set CRM Preference Successfully.' diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_setPreference.xml b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_setPreference.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1ef7eaa0cca99dc6b118bf5faa04bb60aec185a --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/CRMRJSZuite_setPreference.xml @@ -0,0 +1,66 @@ +<?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></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>CRMRJSZuite_setPreference</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Set Test Runner Preferences</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/Zuite_CommonTemplateForCRMRenderjsUi.xml b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/Zuite_CommonTemplateForCRMRenderjsUi.xml new file mode 100644 index 0000000000000000000000000000000000000000..a7842b7ebd343ac1c8ef8a8661a43909516d2d20 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/Zuite_CommonTemplateForCRMRenderjsUi.xml @@ -0,0 +1,79 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <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_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_local_properties</string> </key> + <value> + <tuple> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>description</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>text</string> </value> + </item> + </dictionary> + </tuple> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Common Template for PTZuite, it will reuse parts of the Listbox Zuite</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Zuite_CommonTemplateForCRMRenderjsUi</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode>Common Template for All CRM Renderjs ui Zuite</unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/Zuite_CommonTemplateForCRMRenderjsUi.zpt b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/Zuite_CommonTemplateForCRMRenderjsUi.zpt new file mode 100644 index 0000000000000000000000000000000000000000..477ae8a5552af50f2a4099f37283278bf18762e1 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_crm_renderjs_ui_test/Zuite_CommonTemplateForCRMRenderjsUi.zpt @@ -0,0 +1,306 @@ +<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> + + <tal:block metal:define-macro="init"> + <tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + <tr> + <td>open</td> + <td>${base_url}/portal_preferences/CRMRJSZuite_setPreference</td> + <td></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td>Set CRM Preference Successfully.</td> + <td></td> + </tr> + <tr> + <td>store</td> + <td>${base_url}/web_site_module/renderjs_runner/#</td> + <td>renderjs_url</td> + </tr> + </tal:block> + + <tal:block metal:define-macro="delete_data"> + <tr> + <td colspan="3"><b>Delete CRM Test Data</b></td> + </tr> + <tr> + <td>open</td> + <td>${base_url}/CRMRJSZuite_deleteData</td> + <td></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td>Deleted Successfully.</td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="prepare_data"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/delete_data" /> + <tr> + <td colspan="3"><b>Create CRM Test Data</b></td> + </tr> + <tr> + <td>open</td> + <td>${base_url}/CRMRJSZuite_createEvent</td> + <td></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td>Event Created.</td> + <td></td> + </tr> + <tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" /> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="view_create_response_dialog"> + <tr> + <td colspan="3"><b>Display the create response dialog</b></td> + </tr> + <tr> + <td>open</td> + <td>${renderjs_url}/event_module/erp5_crm_renderjs_ui_test_event?editable=1</td> + <td></td> + </tr> + <!-- Wait for gadget to be loaded --> + <tr> + <td>waitForElementPresent</td> + <td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_view_editable.html']</td> + <td></td> + </tr> + <tr> + <td>waitForTextPresent</td> + <td>Actions</td> + <td></td> + </tr> + <tr> + <td>assertElementPresent</td> + <td>//div[@data-gadget-scope='header']//a[text()='Actions' and contains(@href, '#!change') and contains(@href, 'n.page=action')]</td> + <td></td> + </tr> + <tr> + <td>click</td> + <td>//div[@data-gadget-scope='header']//a[text()='Actions' and contains(@href, '#!change') and contains(@href, 'n.page=action')]</td> + <td></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_page_action.html']</td> + <td></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td>Create Response</td> + <td></td> + </tr> + <tr> + <td>assertElementPresent</td> + <td>//div[@data-gadget-scope='m']//a[text()='Create Response' and contains(@href, '#!change') and contains(@href, 'create_response') and contains(@href, 'u.page=')]</td> + <td></td> + </tr> + <!-- Follow one link --> + <tr> + <td>click</td> + <td>//div[@data-gadget-scope='m']//a[text()='Create Response' and contains(@href, '#!change') and contains(@href, 'create_response') and contains(@href, 'u.page=')]</td> + <td></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_dialog.html']</td> + <td></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td>Create Response</td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="check_create_response_dialog_content"> + <tr> + <td colspan="3"><b tal:content="python: 'Check the create response dialog content'"></b></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_your_response_event_title</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_title']"></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_your_response_event_portal_type</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_portal_type']"></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_your_response_event_resource</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_resource']"></td> + </tr> + <tr tal:condition="python: 'field_your_response_event_start_date' in dialog_content_configuration"> + <td>verifyValue</td> + <td>field_your_response_event_start_date</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_start_date']"></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_your_response_event_notification_message</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_notification_message']"></td> + </tr> + <tr> + <td>verifyValue</td> + <td tal:content="python: '//input[@name=\'field_your_response_workflow_action\' and @type=\'radio\' and @value=\'%s\']' % dialog_content_configuration['field_your_response_workflow_action']"></td> + <td>on</td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_my_default_destination</td> + <td tal:content="python: dialog_content_configuration['field_my_default_destination']"></td> + </tr> + <!-- Wait for ckeditor to be loaded :/ How to inspect inside another iframe? --> + <tr> + <td>pause</td> + <td>5000</td> + <td></td> + </tr> + <tr> + <td>storeEval</td> + <td>document.querySelector('#selenium_myiframe').contentWindow.document.querySelector('iframe').contentWindow.document.querySelector('iframe').contentWindow.document.body.innerHTML</td> + <td>field_your_response_event_text_content</td> + </tr> + <tr> + <td>verifyEval</td> + <td>storedVars['field_your_response_event_text_content']</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_text_content']"></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + + <tal:block metal:define-macro="fill_create_response_dialog_content"> + <tr> + <td colspan="3"><b tal:content="python: 'Fill the create response dialog content'"></b></td> + </tr> + <tr> + <td>type</td> + <td>field_your_response_event_title</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_title']"></td> + </tr> + <tr> + <td>type</td> + <td>field_your_response_event_portal_type</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_portal_type']"></td> + </tr> + <tr> + <td>type</td> + <td>field_your_response_event_resource</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_resource']"></td> + </tr> + <tr> + <td>type</td> + <td>field_your_response_event_start_date</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_start_date']"></td> + </tr> + <tr> + <td>type</td> + <td>field_your_response_event_notification_message</td> + <td tal:content="python: dialog_content_configuration['field_your_response_event_notification_message']"></td> + </tr> + <tr> + <td>type</td> + <td>field_your_response_workflow_action</td> + <td tal:content="python: dialog_content_configuration['field_your_response_workflow_action']"></td> + </tr> + <tr> + <td>type</td> + <td>field_my_default_destination</td> + <td tal:content="python: dialog_content_configuration['field_my_default_destination']"></td> + </tr> + <tr> + <td>storeEval</td> + <td tal:content="python: 'document.querySelector(\'#selenium_myiframe\').contentWindow.document.querySelector(\'iframe\').contentWindow.document.querySelector(\'iframe\').contentWindow.document.body.innerHTML = \'%s\'' % dialog_content_configuration['field_your_response_event_text_content']"></td> + <td>field_my_text_content</td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + + <tal:block metal:define-macro="check_response_content"> + <tr> + <td colspan="3"><b tal:content="python: 'Check the response content'"></b></td> + </tr> + <!-- Wait for gadget to be loaded --> + <tr> + <td>waitForElementPresent</td> + <td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_view_editable.html']</td> + <td></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_my_title</td> + <td tal:content="python: response_configuration['field_my_title']"></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td tal:content="python: response_configuration['field_my_portal_type']"></td> + <td></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_my_resource</td> + <td tal:content="python: response_configuration['field_my_resource']"></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_my_start_date</td> + <td tal:content="python: response_configuration['field_my_start_date']"></td> + </tr> + <tr> + <td>assertTextPresent</td> + <td tal:content="python: response_configuration['simulation_state']"></td> + <td></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_my_source_title</td> + <td tal:content="python: response_configuration['field_my_source_title']"></td> + </tr> + <tr> + <td>verifyValue</td> + <td>field_my_destination_title_list</td> + <td tal:content="python: response_configuration['field_my_destination_title']"></td> + </tr> + <!-- Wait for ckeditor to be loaded :/ How to inspect inside another iframe? --> + <tr> + <td>pause</td> + <td>5000</td> + <td></td> + </tr> + <tr> + <td>storeEval</td> + <td>document.querySelector('#selenium_myiframe').contentWindow.document.querySelector('iframe').contentWindow.document.querySelector('iframe').contentWindow.document.body.innerHTML</td> + <td>field_my_text_content</td> + </tr> + <tr> + <td>verifyEval</td> + <td>storedVars['field_my_text_content']</td> + <td tal:content="python: response_configuration['field_my_text_content']"></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + +</tal:block> \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSCRMAction.py b/bt5/erp5_crm_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSCRMAction.py new file mode 100644 index 0000000000000000000000000000000000000000..12f218c7a4867f3ebe6c72b4551d336169278e0f --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSCRMAction.py @@ -0,0 +1,50 @@ +############################################################################## +# +# Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved. +# Kazuhiko <kazuhiko@nexedi.com> +# Rafael Monnerat <rafael@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. +# +############################################################################## +import unittest + +from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import ERP5TypeFunctionalTestCase + +class TestRenderJSUICRMAction(ERP5TypeFunctionalTestCase): + foreground = 0 + run_only = "renderjs_ui_crm_action_zuite" + + def getBusinessTemplateList(self): + return ( + 'erp5_crm_renderjs_ui_test', + 'erp5_crm', + 'erp5_web_renderjs_ui', + 'erp5_web_renderjs_ui_test', + 'erp5_ui_test_core', + 'erp5_test_result', + ) + +def test_suite(): + suite = unittest.TestSuite() + suite.addTest(unittest.makeSuite(TestRenderJSUICRMAction)) + return suite \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSCRMAction.xml b/bt5/erp5_crm_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSCRMAction.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d001e1c8d75fac3f35c246ca455b0e1077672fa --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSCRMAction.xml @@ -0,0 +1,123 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Test 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>testFunctionalRJSCRMAction</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>test.erp5.testFunctionalRJSCRMAction</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Test 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.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/bt5/erp5_crm_renderjs_ui_test/bt/comment b/bt5/erp5_crm_renderjs_ui_test/bt/comment new file mode 100644 index 0000000000000000000000000000000000000000..8503c7f59aeb51a12903a84fc84aae369d92c39e --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/comment @@ -0,0 +1 @@ +RenderJS UI tests for Event Module. \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/copyright_list b/bt5/erp5_crm_renderjs_ui_test/bt/copyright_list new file mode 100644 index 0000000000000000000000000000000000000000..4eb1d620d1a513587d2e69a0650eb687f419ac4d --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/copyright_list @@ -0,0 +1 @@ +Copyright (C) 2018 Nexedi SA \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/dependency_list b/bt5/erp5_crm_renderjs_ui_test/bt/dependency_list new file mode 100644 index 0000000000000000000000000000000000000000..6ef5e108d4ef981a14667e45c1a405aad5f1a6a3 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/dependency_list @@ -0,0 +1,2 @@ +erp5_crm +erp5_web_renderjs_ui_test \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/license b/bt5/erp5_crm_renderjs_ui_test/bt/license new file mode 100644 index 0000000000000000000000000000000000000000..3a3e12bcad97e4b3bdd6a8bb499fd23a4bcb0819 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/license @@ -0,0 +1 @@ +GPL \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/template_format_version b/bt5/erp5_crm_renderjs_ui_test/bt/template_format_version new file mode 100644 index 0000000000000000000000000000000000000000..56a6051ca2b02b04ef92d5150c9ef600403cb1de --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/template_format_version @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/template_path_list b/bt5/erp5_crm_renderjs_ui_test/bt/template_path_list new file mode 100644 index 0000000000000000000000000000000000000000..c19b3c8de968631bd6c3e4b59f4bbd24fc5d99c0 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/template_path_list @@ -0,0 +1,2 @@ +portal_tests/renderjs_ui_crm_action_zuite +portal_tests/renderjs_ui_crm_action_zuite/** \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/template_skin_id_list b/bt5/erp5_crm_renderjs_ui_test/bt/template_skin_id_list new file mode 100644 index 0000000000000000000000000000000000000000..df5f8f58be8d9a3461154f590ee03ed577e89ff2 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/template_skin_id_list @@ -0,0 +1 @@ +erp5_crm_renderjs_ui_test \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/template_test_id_list b/bt5/erp5_crm_renderjs_ui_test/bt/template_test_id_list new file mode 100644 index 0000000000000000000000000000000000000000..850547a0aea94370b1a017fe9fd6d1714defd8a5 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/template_test_id_list @@ -0,0 +1 @@ +test.erp5.testFunctionalRJSCRMAction \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/test_dependency_list b/bt5/erp5_crm_renderjs_ui_test/bt/test_dependency_list new file mode 100644 index 0000000000000000000000000000000000000000..bff77e32d84989312efdf3b2caed2e39f9a513ed --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/test_dependency_list @@ -0,0 +1 @@ +erp5_full_text_mroonga_catalog \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/title b/bt5/erp5_crm_renderjs_ui_test/bt/title new file mode 100644 index 0000000000000000000000000000000000000000..df5f8f58be8d9a3461154f590ee03ed577e89ff2 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/title @@ -0,0 +1 @@ +erp5_crm_renderjs_ui_test \ No newline at end of file diff --git a/bt5/erp5_crm_renderjs_ui_test/bt/version b/bt5/erp5_crm_renderjs_ui_test/bt/version new file mode 100644 index 0000000000000000000000000000000000000000..ceab6e11ece0bcec917c12e11d350946f085d549 --- /dev/null +++ b/bt5/erp5_crm_renderjs_ui_test/bt/version @@ -0,0 +1 @@ +0.1 \ No newline at end of file diff --git a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/Base_renderForm.py b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/Base_renderForm.py new file mode 100644 index 0000000000000000000000000000000000000000..5093a1ab9a89e2a31b61448513230646902165f0 --- /dev/null +++ b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/Base_renderForm.py @@ -0,0 +1,3 @@ +# request.RESPONSE.setStatus(200) +form = getattr(context, form_id) +return context.ERP5Document_getHateoas(form=form, mode='form') diff --git a/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/Base_renderForm.xml b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/Base_renderForm.xml new file mode 100644 index 0000000000000000000000000000000000000000..e1e14e9bd773c3bb32819968f3519efd1e8a1135 --- /dev/null +++ b/bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/Base_renderForm.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>form_id</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_renderForm</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt index ca8bb820e419ba8252614d2bfbe29a14cedeecd4..a3614f9b934927086dfa960021653dadf500b347 100644 --- a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt +++ b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt @@ -153,6 +153,30 @@ </tr> </tal:block> + <tal:block metal:define-macro="update_dialog"> + <tr> + <td colspan="3"><b>Update the dialog</b></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_pt_form_dialog.html')]</td> + <td></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_pt_form_dialog.html')]//button[@name='action_update' and @type='submit']</td> + <td></td> + </tr> + <tr> + <td>click</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_pt_form_dialog.html')]//button[@name='action_update' and @type='submit']</td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + <tal:block metal:define-macro="search_in_form_list"> <tr> <td colspan="3"><b tal:content="python: 'Submit a form list search: %s' % search_query"></b></td> @@ -842,4 +866,23 @@ </tr> </tal:block> + <tal:block metal:define-macro="wait_for_notification"> + <tr> + <td colspan="3"><b>Wait for the notification message</b></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td tal:content="python: '//div[@data-gadget-scope=\'notification\']//button[@class=\'%(class)s\' and text()=\'%(text)s\']' % notification_configuration"></td> + <td></td> + </tr> + <tr> + <td>assertElementPresent</td> + <td tal:content="python: '//div[@data-gadget-scope=\'notification\']//button[@class=\'%(class)s\' and text()=\'%(text)s\']' % notification_configuration"></td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + </tal:block> \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_renderForm.py b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_renderForm.py new file mode 100644 index 0000000000000000000000000000000000000000..0c2a28ee71c244e1429d82149e4a71e43a7725cd --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_renderForm.py @@ -0,0 +1 @@ +return getattr(context, form_id)() diff --git a/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_renderForm.xml b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_renderForm.xml new file mode 100644 index 0000000000000000000000000000000000000000..e1e14e9bd773c3bb32819968f3519efd1e8a1135 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_xhtml_style/SkinTemplateItem/portal_skins/erp5_xhtml_style/Base_renderForm.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>form_id</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_renderForm</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData>