Commit 9b20327c authored by Ivan Tyagov's avatar Ivan Tyagov

Wendelin tutorial tests

See merge request nexedi/wendelin!79
parents 7707dbd5 a91bcbf1
...@@ -107,6 +107,91 @@ ...@@ -107,6 +107,91 @@
<key> <string>version</string> </key> <key> <string>version</string> </key>
<value> <string>001</string> </value> <value> <string>001</string> </value>
</item> </item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</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>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<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>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>P0</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1610629516.75</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -103,6 +103,91 @@ ...@@ -103,6 +103,91 @@
<key> <string>version</string> </key> <key> <string>version</string> </key>
<value> <string>001</string> </value> <value> <string>001</string> </value>
</item> </item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</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>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<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>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>P0</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1610629502.04</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -107,6 +107,91 @@ ...@@ -107,6 +107,91 @@
<key> <string>version</string> </key> <key> <string>version</string> </key>
<value> <string>001</string> </value> <value> <string>001</string> </value>
</item> </item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</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>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<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>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1610630994.19</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -103,6 +103,91 @@ ...@@ -103,6 +103,91 @@
<key> <string>version</string> </key> <key> <string>version</string> </key>
<value> <string>001</string> </value> <value> <string>001</string> </value>
</item> </item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</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>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<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>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1610630978.27</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -114,6 +114,7 @@ if modify and data_ingestion is None: ...@@ -114,6 +114,7 @@ if modify and data_ingestion is None:
data_ingestion_reference, data_ingestion_reference,
data_ingestion_id) data_ingestion_id)
# find ingestion line for current resource # find ingestion line for current resource
for line in data_ingestion.objectValues(portal_type="Data Ingestion Line"): for line in data_ingestion.objectValues(portal_type="Data Ingestion Line"):
if line.getResourceReference() == resource_reference: if line.getResourceReference() == resource_reference:
......
...@@ -3,9 +3,13 @@ portal_callables/IngestionPolicy_parseSimpleFluentdTag ...@@ -3,9 +3,13 @@ portal_callables/IngestionPolicy_parseSimpleFluentdTag
portal_callables/DataIngestionLine_writeIngestionToDataStream portal_callables/DataIngestionLine_writeIngestionToDataStream
portal_callables/IngestionPolicy_parseSimpleIngestionTag portal_callables/IngestionPolicy_parseSimpleIngestionTag
web_page_module/*_wendelin_* web_page_module/*_wendelin_*
web_page_module/gadget_erp5_page_wendelin_front_html
web_page_module/gadget_erp5_page_wendelin_front_js
web_page_module/rjs_gadget_erp5_pt_ingestion_policies_js web_page_module/rjs_gadget_erp5_pt_ingestion_policies_js
web_page_module/rjs_gadget_erp5_pt_ingestion_policies_html web_page_module/rjs_gadget_erp5_pt_ingestion_policies_html
web_page_module/rjs_gadget_erp5_pt_callables_js web_page_module/rjs_gadget_erp5_pt_callables_js
web_page_module/rjs_gadget_erp5_pt_callables_html web_page_module/rjs_gadget_erp5_pt_callables_html
web_page_module/rjs_gadget_wendelin_panel_html
web_page_module/rjs_gadget_wendelin_panel_js
web_site_module/default_wendelin_front web_site_module/default_wendelin_front
web_site_module/default_wendelin_front/** web_site_module/default_wendelin_front/**
\ No newline at end of file
web_page_module/wendelin_information_gadget.html web_page_module/wendelin_information_gadget.html
web_page_module/wendelin_js web_page_module/wendelin_js
web_page_module/*_wendelin_* web_page_module/*_wendelin_*
web_page_module/gadget_erp5_page_wendelin_front_html
web_page_module/gadget_erp5_page_wendelin_front_js
web_page_module/rjs_gadget_erp5_pt_ingestion_policies_js web_page_module/rjs_gadget_erp5_pt_ingestion_policies_js
web_page_module/rjs_gadget_erp5_pt_ingestion_policies_html web_page_module/rjs_gadget_erp5_pt_ingestion_policies_html
web_page_module/rjs_gadget_erp5_pt_callables_js web_page_module/rjs_gadget_erp5_pt_callables_js
web_page_module/rjs_gadget_erp5_pt_callables_html web_page_module/rjs_gadget_erp5_pt_callables_html
web_page_module/*_wendelin_* web_page_module/*_wendelin_*
web_page_module/rjs_gadget_wendelin_panel_html
web_page_module/rjs_gadget_wendelin_panel_js
portal_gadgets/WendelinInformationGadget portal_gadgets/WendelinInformationGadget
portal_ingestion_policies/default portal_ingestion_policies/default
data_supply_module/default data_supply_module/default
......
...@@ -23,10 +23,14 @@ portal_gadgets/WendelinInformationGadget ...@@ -23,10 +23,14 @@ portal_gadgets/WendelinInformationGadget
portal_gadgets/WendelinInformationGadget/** portal_gadgets/WendelinInformationGadget/**
portal_ingestion_policies/default portal_ingestion_policies/default
web_page_module/*_wendelin_* web_page_module/*_wendelin_*
web_page_module/gadget_erp5_page_wendelin_front_html
web_page_module/gadget_erp5_page_wendelin_front_js
web_page_module/rjs_gadget_erp5_pt_callables_html web_page_module/rjs_gadget_erp5_pt_callables_html
web_page_module/rjs_gadget_erp5_pt_callables_js web_page_module/rjs_gadget_erp5_pt_callables_js
web_page_module/rjs_gadget_erp5_pt_ingestion_policies_html web_page_module/rjs_gadget_erp5_pt_ingestion_policies_html
web_page_module/rjs_gadget_erp5_pt_ingestion_policies_js web_page_module/rjs_gadget_erp5_pt_ingestion_policies_js
web_page_module/rjs_gadget_wendelin_panel_html
web_page_module/rjs_gadget_wendelin_panel_js
web_page_module/wendelin_information_gadget.html web_page_module/wendelin_information_gadget.html
web_page_module/wendelin_js web_page_module/wendelin_js
web_site_module/default_wendelin_front web_site_module/default_wendelin_front
......
"""Create ingestion with data from stream"""
portal = context.getPortalObject()
request = portal.REQUEST
index = reference.index('-')
stream_reference = reference
ingestion_reference = reference[:index] + '.' + reference[index+1:len(reference)]
context.log("stream_reference = ", stream_reference)
context.log("ingestion_reference = ", ingestion_reference)
context.log("index = ", index)
request.environ['REQUEST_METHOD'] = 'POST'
request.set('reference', ingestion_reference)
request.set('data_chunk', portal.data_stream_module.get(stream_reference).getData())
portal.portal_ingestion_policies.default.ingest()
return 'Data ingested'
<?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>reference</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Ingestion_ingestDataStream</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<section>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>store</td>
<td tal:content="python:here.getPortalObject().absolute_url()">http://example.com/erp5</td>
<td>base_url_x</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/Zuite_setUpPersonTest</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Init Ok</td>
<td></td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user"&gt;Login As Functional Test User&lt;/span&gt;</td>
</tr>
</tbody>
</table>
</test>
<h1>Agenda</h1>
<ul>
<li>Create Data Product</li>
</ul>
<details open="">
<p>&nbsp;</p>
<p>This tutorial teaches how to create Data Product.</p>
<p>Data Product represents the type of data.&nbsp;</p>
<p>In this tutorial we will create a Data Product for&nbsp;incoming raw data from streaming hardware.&nbsp;</p>
</details>
</section>
<section>
<h1>Home</h1>
<img alt="" src="wendelin-new.Interface.home.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Go to your wendelin instance homepage and click on Modules.</p>
</details>
</section>
<section>
<h1>Data Product</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.1.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>On the modules page click on Data Product.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Add</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.2.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Click on Add button.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Create Document</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.3.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Continue with clicking on Create Document.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Fill the Form</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.4.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Fill the form and click save.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Validate</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.5.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>After it is saved, click on Validate on the left side panel to validate the Data Product.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Confirm Valdation</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.7.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Click on Proceed&nbsp;to confirm the&nbsp;validation.</p>
</details>
<p>&nbsp;</p>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>openAndWait</td>
<td>${base_url_x}/web_site_module/default_wendelin_front/</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_product_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_product_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Create Document"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Create Document"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Sample Environment Raw Data</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="subfield_field_my_quantity_unit_list_default:list"]</td>
<td>Unit/Piece</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>sample-environment-raw-data</td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[1]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Stream</td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[2]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Progress Indicator</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="subfield_field_my_use_list_default:list"]</td>
<td>Big Data/Ingestion/Stream Ingestion</td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/functional_test_username</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Howto.Create.Data.Product</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Create Data Product</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_01_wendelin_Tutorial_Howto_Create_Data_Product</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Create Data Product</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Create Data Product</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<section>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>store</td>
<td tal:content="python:here.getPortalObject().absolute_url()">http://example.com/erp5</td>
<td>base_url_x</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/Zuite_setUpPersonTest</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Init Ok</td>
<td></td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user"&gt;Login As Functional Test User&lt;/span&gt;</td>
</tr>
</tbody>
</table>
</test>
<h1>Agenda</h1>
<ul>
<li>Create Data Acquisition&nbsp;Unit</li>
</ul>
<details open="">
<p>&nbsp;</p>
<p>This tutorial teaches how to create Data Acquisition&nbsp;Unit.</p>
<p>Data Acquisition&nbsp;Unit represents the source from where the data comes.&nbsp;</p>
<p>In the scope of this Learning Track we use Olimex Environment Sensor to retrieve data, thus our&nbsp; Data Acquisition&nbsp;Unit will represent that sensor.&nbsp;</p>
<p>&nbsp;</p>
</details>
</section>
<section>
<h1>Home</h1>
<img alt="" src="wendelin-new.Interface.home.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Go to your wendelin instance homepage and click on Modules.</p>
</details>
</section>
<section>
<h1>Data Acquisition Unit</h1>
<img alt="" src="wendelin-new.Interface.modules.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>On the modules page click on Data Acquisition Units.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Add</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Acq.Unit.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Click on Add button.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Create Document</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Acq.Unit.2.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Continue with clicking on Create Document.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Fill the Form</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Acq.Unit.3.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Fill the form and click save.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Validate</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Acq.Unit.4.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>After it is saved, click on Validate on left side panel to validate Data Acquisition Unit.</p>
</details>
<p>&nbsp;</p>
</section>
<section>
<h1>Confirm Valdation</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Acq.Unit.6.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Click on Validate to confirm validation.</p>
</details>
<p>&nbsp;</p>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>openAndWait</td>
<td>${base_url_x}/web_site_module/default_wendelin_front/</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_acquisition_unit_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_acquisition_unit_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Create Document"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Create Document"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Olimex Environment Sensor</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>olimex-environment-sensor</td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/functional_test_username</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Howto.Create.Data.Acquisition</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Create Data Acquisition Unit</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_02_wendelin_Tutorial_Howto_Create_Data_Acquisition</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Create Data Acquisition Unit</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Create Data Acquisition Unit</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Howto.Create.Data.Supply</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Create Data Supply</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_03_wendelin_Tutorial_Howto_Create_Data_Supply</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Create Data Supply</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Create Data Supply</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<section>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>store</td>
<td tal:content="python:here.getPortalObject().absolute_url()">http://example.com/erp5</td>
<td>base_url_x</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/Zuite_setUpPersonTest</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td></td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user"&gt;Login As Functional Test User&lt;/span&gt;</td>
</tr>
</tbody>
</table>
</test>
<h1>Agenda</h1>
<ul>
<li>See Data In Wendelin</li>
<li>Download Data</li>
</ul>
<details open="">
<p>&nbsp;</p>
<p>This tutorial teaches how to verify data arrival on wendelin and how to download the data.&nbsp;</p>
<p>Before doing this tutorial make sure you read and completed the following tutorials</p>
<ul>
<li><a href="wendelin-Tutorial.Setup.Sensor.IOTGateway">HowTo Setup Sensor and IOT Gateway</a></li>
<li><a href="https://slapos.nexedi.com/slapos-HowTo.Use.Slapos.Client">SlapOS HowTo Use SlapOS Client</a></li>
<li><a href="fluentd-HowTo.Setup.Fluentd">HowTo Supply Fluentd</a></li>
<li><a href="https://docs.fluentd.org/configuration">Fluentd Configuration File</a></li>
<li><a href="https://nexedi.erp5.net/web_page_module/10408/wendelin-Tutorial.Setup.Fluentd.on.IOTGateway">HowTo setup Fluentd on IOT Gateway</a></li>
<li><a href="https://nexedi.erp5.net/web_page_module/10408/wendelin-Tutorial.Setup.Fluentd.on.Sensor">HowTo setup Fluentd on Sensor</a></li>
</ul>
<p>&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Wendelin Dashboard</h1>
<img alt="" src="wendelin-Data.Arrival.1?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Open your Wendelin dashboard.&nbsp;</p>
<p>You see that new Data Stream and Data Ingestion were created.&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Data Stream</h1>
<img alt="" src="wendelin-Data.Arrival.2?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>From your Wendelin dashboard click on Data Stream.&nbsp;</p>
<p>In Data Stream you can see the Total size (bytes) of the ingested data.</p>
<p>If you reload the page the size will change as new data arrives.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>openAndWait</td>
<td>${base_url_x}/web_site_module/default_wendelin_front/</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[text()='sensor_1-sample-environment-raw-data']</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//a[text()='sensor_1-sample-environment-raw-data']</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>sensor_1-sample-environment-raw-data</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//a[text()='sensor_1']</td>
<td></td>
</tr
<tr>
<td>click</td>
<td>//a[text()='sensor_1-sample-environment-raw-data']</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Total size (bytes)</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Validated</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>26205759</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Download Data</h1>
<img alt="" src="wendelin-Data.Arrival.3?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>You can see and download &nbsp;data using the <a href="https://curl.haxx.se/">curl</a> commad:&nbsp;</p>
<p><code>curl -k -u [user]:[password] https://[hostname]/erp5/data_stream_module/[id] -r [start]-[end] --output data.txt</code></p>
<p>As data can be very big you can define start and stop bytes to download a slice of data.&nbsp;</p>
</details>
</section>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Check.Data.Arrival</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Check Data Arrival on Wendelin</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_04_wendelin_Tutorial_Check_Data_Arrival</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Check Data Arrival</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
<string>installation</string>
<string>setup</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Check Data Arrival</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Transform.Data</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Transform Data</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_05_wendelin_Tutorial_Transform_Data</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Transform Data</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
<string>installation</string>
<string>setup</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Transform Data</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Resample.Data</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Resample Data</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_06_wendelin_Tutorial_Resample_Data</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Resample Data</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
<string>installation</string>
<string>setup</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Resample Data</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-HowTo.Create.Notebook.with.Graphs</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Create Notebook with Graphs</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_07_wendelin_HowTo_Create_Notebook_with_Graphs</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Create Notebook with Graphs</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
<string>installation</string>
<string>setup</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Create Notebook with Graphs</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Create.Basic.Prediction.scikit-learn</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Create Basic Prediction with scikit-learn</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_08_wendelin_HowTo_Create_Basic_Prediction_with_scikit_learn</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Create Basic Prediction</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Create Basic Prediction with scikit-learn</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<section>
<!--<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/init_test_environment"&gt;init&lt;/span&gt;</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/Zuite_setUpPersonTest</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Init Ok</td>
<td></td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user"&gt;Login As Functional Test User&lt;/span&gt;</td>
</tr>
</tbody>
</table>
</test>-->
<h1>Agenda</h1>
<ul>
<li>Configure Mailhost</li>
</ul>
<details open="">
<p>&nbsp;</p>
<p>This tutorial teaches how to configure wendelin to allow user registration.</p>
<p><strong>Note</strong>: This feature is enabled only if wendelin configuration the&nbsp;<strong>Setup default data lake security model&nbsp;</strong>was checked.&nbsp;</p>
<p>&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Configure Mailhost</h1>
<img alt="" src="wendelin-configureMailhost.screenshot?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Open <strong>https://YOUR_INSTANCE_URL/erp5/MailHost/manage_main</strong> to access the mail host configuration in the Zope interface (Wendelin is built on top of Zope).</p>
<p>Add a SMTP mailhost and <strong>login/password</strong> for the alias under which an email should be forwarded/sent.</p>
<p>Make sure the <strong>Port</strong> is also correctly set to your email provider&#39;s correct SMTP port.</p>
<p>Click <strong>Save</strong>&nbsp;<strong>Changes</strong> when done to continue.</p>
</details>
</section>
<section class="screenshot">
<h1>Register</h1>
<img alt="" src="wendelin-register.user.screenshot?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Once the mailhost is configured users can register.</p>
<p>Open <strong>https://YOUR_INSTANCE_URL/erp5/web_site_module/default_wendelin_data_lake/</strong> and on left side panel click on <strong>Register.</strong></p>
<p><b>Note:&nbsp;</b>Pay attention on <b>/&nbsp;</b>(slash) at the end of the url, it is mandatory.&nbsp;</p>
<p><b>Note: </b>Registration works only if user is not logged in. Thus,&nbsp;before registering a new user make sure that you are not logged in with any user.&nbsp;</p>
<p>After filling the form and clicking on Register you will get an email to the specified email address with further instructions.&nbsp;</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>openAndWait</td>
<td>${base_url}/logout</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/erp5/web_site_module/default_wendelin_data_lake/#/?page=register</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="your_first_name"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="your_first_name"]</td>
<td>TestFirstName</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="your_last_name"]</td>
<td>TestLastName</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="your_email"]</td>
<td>test@example.com</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="your_reference"]</td>
<td>TestReference</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="your_password"]</td>
<td>TestPassword</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="your_confirm_password"]</td>
<td>TestPassword</td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Register"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>Registration submitted.</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/login_form</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="__ac_name"]</td>
<td>functional_test_username</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="__ac_password"]</td>
<td>secret</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@name="logged_in:method"]</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/erp5/view</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>20000</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/erp5/portal_activities/</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//table//tbody//tr[1]//td[2]//a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>2000</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/erp5/event_module/</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//th[@class="listbox-table-header-cell"][4]//button[@type="submit" and @title="Ascending Display"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//td[@class="listbox-table-data-cell"]//a[contains(@href,'/event_module/')]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>store</td>
<td>javascript{
link = String(selenium.browserbot.getCurrentWindow().document.getElementsByTagName("pre")[0].innerText).match("(>https.*<)")[0];
link.substring(1, link.length-1);
}</td>
<td>welcomelink</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${welcomelink}</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>activated</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>40000</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/erp5/portal_activities/</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//table//tbody//tr[1]//td[2]//a</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>2000</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/logout</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/login_form</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="__ac_name"]</td>
<td>TestReference</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="__ac_password"]</td>
<td>TestPassword</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@name="logged_in:method"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/erp5/view</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>TestReference</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<title>Ndarray Gadget</title>
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<!-- custom script -->
<script src="ndarray_bundle.js" type="text/javascript"></script>
<script src="gadget_ndarray.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>100.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_wendelin_tutorial_ui_test</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
preference_tool = context.getPortalObject().portal_preferences
preference = preference_tool.getActivePreference()
if preference is not None: # XXX: 3 is Priority.USER
preference.setPreferredTextEditor('text_area')
preference.setPreferredSourceCodeEditor('text_area')
return 'Init Ok.'
This diff is collapsed.
Includes gadgets used in the Wendelin tutorial.
\ No newline at end of file
web_page_module/rjs_gadget_ndarray_html
web_page_module/rjs_gadget_ndarray_js
web_page_module/rjs_ndarray_bundle_js
\ No newline at end of file
This diff is collapsed.
erp5_wendelin_tutorial_ui_test
\ No newline at end of file
test.erp5.testFunctionalRunTutorialTests
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment