Commit 63c000a1 authored by Aurel's avatar Aurel

Merge remote-tracking branch 'nexedi/master' into py2zope4

parents 7bb5804d 90e96ee4
Changes Changes
======= =======
0.4.71 (2021-09-08)
-------------------
* testnode:
- various changes relate to SlapOS' integration of Scalability tests
0.4.70 (2021-06-14) 0.4.70 (2021-06-14)
------------------- -------------------
......
...@@ -201,7 +201,7 @@ class SupplyLine(Path, Amount, XMLMatrix): ...@@ -201,7 +201,7 @@ class SupplyLine(Path, Amount, XMLMatrix):
unused_predicate_id_set = self.getQuantityPredicateIdList(price_parameter) unused_predicate_id_set = self.getQuantityPredicateIdList(price_parameter)
if quantity_step_list: if quantity_step_list:
quantity_step_list.sort() quantity_step_list.sort()
quantity_step_list = [None] + quantity_step_list + [None] quantity_step_list = [0] + quantity_step_list + [None]
getTitle = getattr( getTitle = getattr(
self, self,
'SupplyLine_getTitle', 'SupplyLine_getTitle',
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_list</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_list</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/ComputeNodeModule_viewComputeNodeList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_action</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>apply_computer_model</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>Modify portal content</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Apply Computer Model</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Computer_applyComputerModel</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>compute_partition</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Partitions</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/ComputeNode_viewComputePartitionList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>model</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>3.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Model</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Computer_viewModel</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>tcp_port_number</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>10.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Tcp Port Numbers</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Computer_viewTcpPortNumberList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/ComputeNode_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/ComputeNode_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
......
...@@ -53,6 +53,24 @@ ...@@ -53,6 +53,24 @@
</tuple> </tuple>
</value> </value>
</item> </item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>acquisition_base_category</string> </key> <key> <string>acquisition_base_category</string> </key>
<value> <value>
...@@ -63,7 +81,7 @@ ...@@ -63,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
...@@ -94,4 +112,26 @@ ...@@ -94,4 +112,26 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData> </ZopeData>
...@@ -53,6 +53,24 @@ ...@@ -53,6 +53,24 @@
</tuple> </tuple>
</value> </value>
</item> </item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>acquisition_base_category</string> </key> <key> <string>acquisition_base_category</string> </key>
<value> <value>
...@@ -63,7 +81,7 @@ ...@@ -63,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -86,4 +104,26 @@ ...@@ -86,4 +104,26 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData> </ZopeData>
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</item> </item>
<item> <item>
<key> <string>acquisition_portal_type</string> </key> <key> <string>acquisition_portal_type</string> </key>
<value> <string>python:[\'Computer\']</string> </value> <value> <string>python:[\'Computer\', \'Compute Node\']</string> </value>
</item> </item>
<item> <item>
<key> <string>categories</string> </key> <key> <string>categories</string> </key>
......
<module>
<id>compute_node_module</id>
<permission_list>
<permission type='tuple'>
<name>Access Transient Objects</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Access contents information</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Access session data</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Add portal content</name>
<role>Assignor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Add portal folders</name>
<role>Assignor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Change local roles</name>
<role>Assignor</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Copy or Move</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Delete objects</name>
<role>Assignor</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>List folder contents</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Author</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>Modify portal content</name>
<role>Assignor</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>View</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Manager</role>
</permission>
<permission type='tuple'>
<name>View History</name>
<role>Assignee</role>
<role>Assignor</role>
<role>Associate</role>
<role>Auditor</role>
<role>Author</role>
<role>Manager</role>
</permission>
</permission_list>
<portal_type>Compute Node Module</portal_type>
<title>Compute Nodes</title>
</module>
\ No newline at end of file
<allowed_content_type_list> <allowed_content_type_list>
<portal_type id="Compute Node">
<item>Compute Partition</item>
<item>Internet Protocol Address</item>
<item>Tcp Port Number</item>
</portal_type>
<portal_type id="Compute Node Module">
<item>Compute Node</item>
</portal_type>
<portal_type id="Compute Partition">
<item>Internet Protocol Address</item>
</portal_type>
<portal_type id="Computer"> <portal_type id="Computer">
<item>Computer Partition</item> <item>Computer Partition</item>
<item>Internet Protocol Address</item> <item>Internet Protocol Address</item>
......
<base_category_list> <base_category_list>
<portal_type id="Compute Node">
<item>specialise</item>
<item>subordination</item>
</portal_type>
<portal_type id="Compute Node Module">
<item>business_application</item>
</portal_type>
<portal_type id="Compute Partition">
<item>subordination</item>
</portal_type>
<portal_type id="Computer"> <portal_type id="Computer">
<item>specialise</item> <item>specialise</item>
<item>subordination</item> <item>subordination</item>
......
<property_sheet_list> <property_sheet_list>
<portal_type id="Compute Node">
<item>VariationRange</item>
</portal_type>
<portal_type id="Compute Partition">
<item>VariationRange</item>
</portal_type>
<portal_type id="Computer"> <portal_type id="Computer">
<item>VariationRange</item> <item>VariationRange</item>
</portal_type> </portal_type>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_property_domain_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value> <string>folder_icon.gif</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Compute Node Module contains Compute Node portal type documents.</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addFolder</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>module</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Compute Node Module</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>Folder</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>short_title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_ui</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>short_title</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_ui</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>title</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addXMLObject</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>item</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Compute Node</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string>ComputeNode_init</string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>Computer</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_property_domain_dict</string> </key>
<value>
<dictionary>
<item>
<key> <string>short_title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value> <string>document_icon.gif</string> </value>
</item>
<item>
<key> <string>content_meta_type</string> </key>
<value> <string>ERP5 Computer</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addComputerPartition</string> </value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>item</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Compute Partition</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Partition</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>ComputerPartition</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>short_title</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>title</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<workflow_chain> <workflow_chain>
<chain>
<type>Compute Node</type>
<workflow>edit_workflow, validation_workflow</workflow>
</chain>
<chain>
<type>Compute Partition</type>
<workflow>edit_workflow, validation_workflow</workflow>
</chain>
<chain> <chain>
<type>Computer</type> <type>Computer</type>
<workflow>edit_workflow, validation_workflow</workflow> <workflow>edit_workflow, validation_workflow</workflow>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_doSelect</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list>
<string>listbox_available_partition_count</string>
</list>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ComputeNodeModule_viewComputeNodeList</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>ComputeNodeModule_viewComputeNodeList</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>ERP5 Form</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_list</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Nodes</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>columns</string>
<string>domain_root_list</string>
<string>domain_tree</string>
<string>search_columns</string>
<string>selection_name</string>
<string>sort_columns</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>reference</string>
<string>Reference</string>
</tuple>
<tuple>
<string>specialise_title</string>
<string>Computer Model</string>
</tuple>
<tuple>
<string>default_network_address_host_name</string>
<string>Hostname</string>
</tuple>
<tuple>
<string>default_network_address_ip_address</string>
<string>IP Address</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>group</string>
<string>Group</string>
</tuple>
<tuple>
<string>available_partition_count</string>
<string>Available Partition</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>domain_root_list</string> </key>
<value>
<list>
<tuple>
<string>group</string>
<string>Group</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>domain_tree</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_list_mode_listbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Compute Node</string>
<string>Compute Node</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>reference</string>
<string>Reference</string>
</tuple>
<tuple>
<string>specialise_title</string>
<string>Computer Model</string>
</tuple>
<tuple>
<string>creation_date</string>
<string>Creation Date</string>
</tuple>
<tuple>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>compute_node_module_selection</string> </value>
</item>
<item>
<key> <string>sort_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>group</string>
<string>Group</string>
</tuple>
<tuple>
<string>reference</string>
<string>Reference</string>
</tuple>
<tuple>
<string>specialise_title</string>
<string>Computer Model</string>
</tuple>
<tuple>
<string>creation_date</string>
<string>Creation Date</string>
</tuple>
<tuple>
<string>modification_date</string>
<string>Modification Date</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Nodes</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="StringField" module="Products.Formulator.StandardFields"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_available_partition_count</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_long</string> </key>
<value> <string>Too much input was given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>input_type</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Available Partition</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: cell.ComputeNode_getRemainingQuantity()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
"""
This script is used to allow Customisation How Available Item
(Computer Partitions) are accountable into Computers.
By default use Simple Item API.
"""
return context.Computer_getRemainingQuantity()
<?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>ComputeNode_getRemainingQuantity</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_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/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list>
<string>my_description</string>
</list>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list>
<string>listbox_int_index</string>
<string>listbox_title</string>
</list>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_reference</string>
<string>my_group</string>
<string>my_specialise_title</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_quantity</string>
<string>my_default_network_address_host_name</string>
<string>my_default_network_address_ip_address</string>
<string>my_default_network_address_netmask</string>
<string>my_translated_validation_state_title</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ComputeNode_view</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>ComputeNode_view</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Node</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>anchor</string>
<string>columns</string>
<string>editable_columns</string>
<string>portal_types</string>
<string>selection_name</string>
<string>sort</string>
<string>title</string>
<string>url_columns</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>anchor</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>int_index</string>
<string>Index</string>
</tuple>
<tuple>
<string>translated_portal_type</string>
<string>Coordinate Type</string>
</tuple>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_id</string>
<string>Coordinate Function</string>
</tuple>
<tuple>
<string>asText</string>
<string>Value</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>editable_columns</string> </key>
<value>
<list>
<tuple>
<string>int_index</string>
<string>Index</string>
</tuple>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_listbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value>
<list>
<tuple>
<string>Internet Protocol Address</string>
<string>Internet Protocol Address</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>compute_node_network_address_list_selection</string> </value>
</item>
<item>
<key> <string>sort</string> </key>
<value>
<list>
<tuple>
<string>portal_type</string>
<string>Type</string>
</tuple>
<tuple>
<string>int_index</string>
<string>Index</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Coordinates</string> </value>
</item>
<item>
<key> <string>url_columns</string> </key>
<value>
<list>
<tuple>
<string>asText</string>
<string>Coordinate_asURL</string>
</tuple>
</list>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_int_index</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_integer_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/portal_categories/activity/getCategoryChildTranslatedLogicalPathItemList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/portal_categories/activity/getCategoryChildTranslatedLogicalPathItemList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_default_network_address_host_name</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Hostname</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_default_network_address_ip_address</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>IP Address</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_default_network_address_netmask</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Netmask</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_group</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_category</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Group</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_quantity</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_integer_value</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Number of Compute Partitions</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>editable</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_reference</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>portal_type</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_specialise_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_relation_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Computer Model</string>
<string>Computer Model</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Computer Model</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_translated_validation_state_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_translated_workflow_state_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_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/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_quantity</string>
<string>my_remaining_quantity</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ComputeNode_viewComputePartitionList</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>ComputeNode_viewComputePartitionList</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Partitions</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>anchor</string>
<string>columns</string>
<string>default_params</string>
<string>portal_types</string>
<string>search_columns</string>
<string>selection_name</string>
<string>sort_columns</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>anchor</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>default_network_address_host_name</string>
<string>Hostname</string>
</tuple>
<tuple>
<string>default_network_address_ip_address</string>
<string>IP Address</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>default_params</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_listbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value>
<list>
<tuple>
<string>Compute Partition</string>
<string>Compute Partition</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>search_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>selection_name</string> </key>
<value> <string>compute_node_compute_partition_list_selection</string> </value>
</item>
<item>
<key> <string>sort_columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Partitions</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_quantity</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_integer_value</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Number of Compute Partitions</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_remaining_quantity</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_integer_value</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Remaining Compute Partitions</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>here/ComputeNode_getRemainingQuantity|python:0</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Compute Node Module | view
Compute Node | apply_computer_model
Compute Node | compute_partition
Compute Node | model
Compute Node | tcp_port_number
Compute Node | view
Compute Partition | view
Computer Model Module | view Computer Model Module | view
Computer Model | view Computer Model | view
Computer Module | view Computer Module | view
......
compute_node_module
computer_model_module computer_model_module
computer_module computer_module
computer_network_module computer_network_module
\ No newline at end of file
Compute Node Module | Compute Node
Compute Node | Compute Partition
Compute Node | Internet Protocol Address
Compute Node | Tcp Port Number
Compute Partition | Internet Protocol Address
Computer Model Module | Computer Model Computer Model Module | Computer Model
Computer Module | Computer Computer Module | Computer
Computer Network Module | Computer Network Computer Network Module | Computer Network
......
Compute Node Module | business_application
Compute Node | specialise
Compute Node | subordination
Compute Partition | subordination
Computer Model Module | business_application Computer Model Module | business_application
Computer Module | business_application Computer Module | business_application
Computer Network Module | business_application Computer Network Module | business_application
......
Compute Node
Compute Node Module
Compute Partition
Computer Computer
Computer Model Computer Model
Computer Model Module Computer Model Module
......
Compute Node | VariationRange
Compute Partition | VariationRange
Computer Partition | VariationRange Computer Partition | VariationRange
Computer | VariationRange Computer | VariationRange
\ No newline at end of file
Compute Node | edit_workflow
Compute Node | validation_workflow
Compute Partition | edit_workflow
Compute Partition | validation_workflow
Computer Model | edit_workflow Computer Model | edit_workflow
Computer Model | validation_workflow Computer Model | validation_workflow
Computer Network | edit_workflow Computer Network | edit_workflow
......
...@@ -1865,7 +1865,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, ...@@ -1865,7 +1865,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
catalog_kw['group_by_list'] = [str(group_by)] catalog_kw['group_by_list'] = [str(group_by)]
# Include select, as user may want to count # Include select, as user may want to count
# For now, consider only functions, for example, count(column_name) or COUNT(column name) or count(*) # For now, consider only functions, for example, count(column_name) or COUNT(column name) or count(*)
catalog_kw["select_list"] = [x for x in select_list if re.match(r"^\D+\(.*\)$", x)] catalog_kw["select_list"] = [x for x in select_list if ((x in catalog_kw['group_by_list']) or re.match(r"^\D+\(.*\)$", x))]
if limit: if limit:
catalog_kw["limit"] = limit catalog_kw["limit"] = limit
......
...@@ -1455,6 +1455,34 @@ class TestERP5Document_getHateoas_mode_search(ERP5HALJSONStyleSkinsMixin): ...@@ -1455,6 +1455,34 @@ class TestERP5Document_getHateoas_mode_search(ERP5HALJSONStyleSkinsMixin):
self.assertEqual(result_dict['_embedded']['contents'][0]["getTranslatedValidationStateTitle"], "Published") self.assertEqual(result_dict['_embedded']['contents'][0]["getTranslatedValidationStateTitle"], "Published")
self.assertEqual(result_dict['_embedded']['contents'][0]["count(validation_state)"], 1) self.assertEqual(result_dict['_embedded']['contents'][0]["count(validation_state)"], 1)
@simulate('Base_getRequestUrl', '*args, **kwargs',
'return "http://example.org/bar"')
@simulate('Base_getRequestHeader', '*args, **kwargs',
'return "application/hal+json"')
@changeSkin('Hal')
def test_getHateoas_select_list_keep_group_by(self):
fake_request = do_fake_request("GET")
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(
REQUEST=fake_request,
mode="search",
query="id:=hateoas AND uid:=%s" % self.portal.web_site_module.hateoas.getUid(),
select_list=["count(*)",
"indexation_timestamp"],
group_by="indexation_timestamp"
)
self.assertEquals(fake_request.RESPONSE.status, 200)
self.assertEquals(fake_request.RESPONSE.getHeader('Content-Type'),
"application/hal+json"
)
result_dict = json.loads(result)
self.assertEqual(result_dict['_links']['self'], {"href": "http://example.org/bar"})
self.assertEqual(result_dict['_select_list'],
["count(*)", "indexation_timestamp"])
self.assertNotEqual(result_dict['_embedded']['contents'][0]["indexation_timestamp"], None)
self.assertEqual(result_dict['_embedded']['contents'][0]["count(*)"], 1)
@simulate('Base_getRequestUrl', '*args, **kwargs', @simulate('Base_getRequestUrl', '*args, **kwargs',
'return "http://example.org/bar"') 'return "http://example.org/bar"')
@simulate('Base_getRequestHeader', '*args, **kwargs', @simulate('Base_getRequestHeader', '*args, **kwargs',
......
...@@ -29,7 +29,7 @@ if result["slice_base_price"]: ...@@ -29,7 +29,7 @@ if result["slice_base_price"]:
slice_min, slice_max = slice_range slice_min, slice_max = slice_range
if slice_max is None: if slice_max is None:
slice_max = quantity + 1 slice_max = quantity + 1
if slice_min is None: if slice_min == 0:
slice_min = 1 slice_min = 1
priced_quantity = min(slice_max - 1, quantity) - (slice_min - 1) priced_quantity = min(slice_max - 1, quantity) - (slice_min - 1)
total_price += priced_quantity * slice_price total_price += priced_quantity * slice_price
......
...@@ -7,7 +7,7 @@ if not quantity_criterion_list: ...@@ -7,7 +7,7 @@ if not quantity_criterion_list:
quantity_criterion, = quantity_criterion_list quantity_criterion, = quantity_criterion_list
supply_line_value = context.getParentValue() supply_line_value = context.getParentValue()
if supply_line_value.isBasePricePerSlice(): if supply_line_value.isBasePricePerSlice():
quantity_step_list = [None] + supply_line_value.getQuantityStepList(base_id='path') + [None] quantity_step_list = [0] + supply_line_value.getQuantityStepList(base_id='path') + [None]
try: try:
index = quantity_step_list.index(quantity_criterion.min) index = quantity_step_list.index(quantity_criterion.min)
except ValueError: except ValueError:
......
...@@ -39,7 +39,7 @@ Test toggling price per slice updates internal supply cells correctly ...@@ -39,7 +39,7 @@ Test toggling price per slice updates internal supply cells correctly
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td> <td>0 &lt;= Quantity &lt; 11.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -36,7 +36,7 @@ Test quantity steps for price on internal supply line ...@@ -36,7 +36,7 @@ Test quantity steps for price on internal supply line
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 10.0</td> <td>0 &lt;= Quantity &lt; 10.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -39,7 +39,7 @@ Test toggling price per slice updates purchase supply cells correctly ...@@ -39,7 +39,7 @@ Test toggling price per slice updates purchase supply cells correctly
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td> <td>0 &lt;= Quantity &lt; 11.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -36,7 +36,7 @@ Test quantity steps for price on purchase supply line ...@@ -36,7 +36,7 @@ Test quantity steps for price on purchase supply line
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 10.0</td> <td>0 &lt;= Quantity &lt; 10.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -39,7 +39,7 @@ Test toggling price per slice updates sale supply cells correctly ...@@ -39,7 +39,7 @@ Test toggling price per slice updates sale supply cells correctly
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td> <td>0 &lt;= Quantity &lt; 11.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -36,7 +36,7 @@ Test quantity steps for price on sale supply line ...@@ -36,7 +36,7 @@ Test quantity steps for price on sale supply line
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 10.0</td> <td>0 &lt;= Quantity &lt; 10.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -1266,10 +1266,10 @@ class TestResource(ERP5TypeTestCase): ...@@ -1266,10 +1266,10 @@ class TestResource(ERP5TypeTestCase):
portal_type=self.sale_supply_cell_portal_type, portal_type=self.sale_supply_cell_portal_type,
id='path_0', id='path_0',
slice_base_price=10., slice_base_price=10.,
slice_quantity_range=(1, 11), slice_quantity_range=(0, 11),
) )
cell0.setCriterionPropertyList(('quantity', )) cell0.setCriterionPropertyList(('quantity', ))
cell0.setCriterion('quantity', min=1, max=None) cell0.setCriterion('quantity', min=0, max=None)
cell0.setMappedValuePropertyList( cell0.setMappedValuePropertyList(
["slice_base_price", "slice_quantity_range", "base_price", "base_unit_price"] ["slice_base_price", "slice_quantity_range", "base_price", "base_unit_price"]
) )
...@@ -1324,7 +1324,11 @@ class TestResource(ERP5TypeTestCase): ...@@ -1324,7 +1324,11 @@ class TestResource(ERP5TypeTestCase):
resource_value=product, resource_value=product,
quantity=quantity, quantity=quantity,
) )
self.assertEqual(price, sale_order_line.getPrice()) self.assertEqual(
price, sale_order_line.getPrice(),
"quantity: %s | price: %s, sale_order_line.getPrice(): %s," % (
quantity, price, sale_order_line.getPrice()
))
self.assertEqual( self.assertEqual(
total_price, total_price,
round(sale_order_line.getTotalPrice(), currency.getQuantityPrecision()) round(sale_order_line.getTotalPrice(), currency.getQuantityPrecision())
...@@ -1332,9 +1336,14 @@ class TestResource(ERP5TypeTestCase): ...@@ -1332,9 +1336,14 @@ class TestResource(ERP5TypeTestCase):
for case in [ for case in [
{'quantity': 9, 'price': 90./9, 'total_price': 90.}, {'quantity': 9, 'price': 90./9, 'total_price': 90.},
{'quantity': 10, 'price': 100./10, 'total_price': 100.},
{'quantity': 11, 'price': 109./11, 'total_price': 109.}, {'quantity': 11, 'price': 109./11, 'total_price': 109.},
{'quantity': 12, 'price': 118./12, 'total_price': 118.},
{'quantity': 15, 'price': 145./15, 'total_price': 145.}, {'quantity': 15, 'price': 145./15, 'total_price': 145.},
{'quantity': 19, 'price': 181./19, 'total_price': 181.}, {'quantity': 19, 'price': 181./19, 'total_price': 181.},
{'quantity': 20, 'price': 190./20, 'total_price': 190.},
{'quantity': 21, 'price': 198./21, 'total_price': 198.},
{'quantity': 22, 'price': 206./22, 'total_price': 206.},
{'quantity': 25, 'price': 230./25, 'total_price': 230.}, {'quantity': 25, 'price': 230./25, 'total_price': 230.},
]: ]:
_test(**case) _test(**case)
......
...@@ -101,7 +101,7 @@ Test quantity steps for price on internal supply line ...@@ -101,7 +101,7 @@ Test quantity steps for price on internal supply line
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td> <td>0 &lt;= Quantity &lt; 11.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -101,7 +101,7 @@ Test quantity steps for price on purchase supply line ...@@ -101,7 +101,7 @@ Test quantity steps for price on purchase supply line
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td> <td>0 &lt;= Quantity &lt; 11.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -100,7 +100,7 @@ Test quantity steps for price on sale supply line ...@@ -100,7 +100,7 @@ Test quantity steps for price on sale supply line
<tr> <tr>
<td>assertText</td> <td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td> <td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td> <td>0 &lt;= Quantity &lt; 11.0</td>
</tr> </tr>
<tr> <tr>
<td>assertText</td> <td>assertText</td>
......
...@@ -82,6 +82,10 @@ ...@@ -82,6 +82,10 @@
<string>visible</string> <string>visible</string>
<string>Visible</string> <string>Visible</string>
</tuple> </tuple>
<tuple>
<string>skin_selection_name</string>
<string>Skin Selection</string>
</tuple>
<tuple> <tuple>
<string>creation_date</string> <string>creation_date</string>
<string>Creation Date</string> <string>Creation Date</string>
......
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
// take the first one // take the first one
gadget.state.portal_type = result.data.rows[0].value.portal_type; gadget.state.portal_type = result.data.rows[0].value.portal_type;
} }
if (gadget.state.portal_type === "Hosting Subscription") { if (gadget.state.portal_type === "Instance Tree") {
redirect_options.page = "ojsm_hosting_subscription_list"; redirect_options.page = "ojsm_instance_tree_list";
} else if (gadget.state.portal_type === "Software Instance") { } else if (gadget.state.portal_type === "Software Instance") {
redirect_options.page = "ojsm_software_instance_list"; redirect_options.page = "ojsm_software_instance_list";
} else if (gadget.state.portal_type === "promise") { } else if (gadget.state.portal_type === "promise") {
......
...@@ -327,15 +327,15 @@ ...@@ -327,15 +327,15 @@
} }
function getInstanceOPMLListFromMaster(gadget, limit) { function getInstanceOPMLListFromMaster(gadget, limit) {
var hosting_subscription_list = [], var instance_tree_list = [],
opml_list = [], opml_list = [],
uid_dict = {}; uid_dict = {};
if (limit === undefined) { if (limit === undefined) {
limit = 300; limit = 300;
} }
return gadget.state.erp5_gadget.allDocs({ return gadget.state.erp5_gadget.allDocs({
query: '(portal_type:"Hosting Subscription") AND (validation_state:"validated")', query: '(portal_type:"Instance Tree") AND (validation_state:"validated")',
select_list: ['title', 'default_predecessor_uid', 'uid', 'slap_state'], select_list: ['title', 'default_successor_uid', 'uid', 'slap_state'],
limit: [0, limit], limit: [0, limit],
sort_on: [ sort_on: [
["creation_date", "descending"] ["creation_date", "descending"]
...@@ -346,7 +346,7 @@ ...@@ -346,7 +346,7 @@
uid_search_list = []; uid_search_list = [];
for (i = 0; i < result.data.total_rows; i += 1) { for (i = 0; i < result.data.total_rows; i += 1) {
if (result.data.rows[i].value.slap_state !== "destroy_requested") { if (result.data.rows[i].value.slap_state !== "destroy_requested") {
hosting_subscription_list.push({ instance_tree_list.push({
title: result.data.rows[i].value.title, title: result.data.rows[i].value.title,
relative_url: result.data.rows[i].id, relative_url: result.data.rows[i].id,
active: (result.data.rows[i].value.slap_state === active: (result.data.rows[i].value.slap_state ===
...@@ -355,15 +355,15 @@ ...@@ -355,15 +355,15 @@
"start_requested") ? "Started" : "Stopped" "start_requested") ? "Started" : "Stopped"
}); });
uid_search_list.push(result.data.rows[i].value.uid); uid_search_list.push(result.data.rows[i].value.uid);
if (result.data.rows[i].value.default_predecessor_uid) { if (result.data.rows[i].value.default_successor_uid) {
uid_dict[result.data.rows[i].value.default_predecessor_uid] = i; uid_dict[result.data.rows[i].value.default_successor_uid] = i;
} }
} }
} }
return gadget.state.erp5_gadget.allDocs({ return gadget.state.erp5_gadget.allDocs({
query: '(portal_type:"Software Instance") AND ' + query: '(portal_type:"Software Instance") AND ' +
'(predecessor_related_uid:("' + uid_search_list.join('","') + '"))', '(successor_related_uid:("' + uid_search_list.join('","') + '"))',
select_list: ['uid', 'predecessor_related_uid', 'connection_xml'], select_list: ['uid', 'successor_related_uid', 'connection_xml'],
limit: [0, limit] limit: [0, limit]
}); });
}) })
...@@ -381,9 +381,9 @@ ...@@ -381,9 +381,9 @@
} }
opml_list.push({ opml_list.push({
portal_type: "opml", portal_type: "opml",
title: hosting_subscription_list[uid_dict[tmp_uid]] title: instance_tree_list[uid_dict[tmp_uid]]
.title, .title,
relative_url: hosting_subscription_list[uid_dict[tmp_uid]] relative_url: instance_tree_list[uid_dict[tmp_uid]]
.relative_url, .relative_url,
url: tmp_parameter.opml_url || String(tmp_uid) + " NO MONITOR", url: tmp_parameter.opml_url || String(tmp_uid) + " NO MONITOR",
has_monitor: tmp_parameter.opml_url !== undefined, has_monitor: tmp_parameter.opml_url !== undefined,
...@@ -392,8 +392,8 @@ ...@@ -392,8 +392,8 @@
basic_login: btoa(tmp_parameter.username + ':' + basic_login: btoa(tmp_parameter.username + ':' +
tmp_parameter.password), tmp_parameter.password),
active: tmp_parameter.opml_url !== undefined && active: tmp_parameter.opml_url !== undefined &&
hosting_subscription_list[uid_dict[tmp_uid]].active, instance_tree_list[uid_dict[tmp_uid]].active,
state: hosting_subscription_list[uid_dict[tmp_uid]].state state: instance_tree_list[uid_dict[tmp_uid]].state
}); });
} }
} }
...@@ -463,7 +463,7 @@ ...@@ -463,7 +463,7 @@
return getMonitorSetting(gadget); return getMonitorSetting(gadget);
}) })
.push(function (configuration_dict) { .push(function (configuration_dict) {
return gadget.changeState({ return gadget.deferChangeState({
options: options, options: options,
is_exporter: is_exporter, is_exporter: is_exporter,
config: JSON.stringify(configuration_dict), config: JSON.stringify(configuration_dict),
...@@ -473,7 +473,7 @@ ...@@ -473,7 +473,7 @@
}); });
} }
return gadget.changeState({ return gadget.deferChangeState({
options: options, options: options,
is_exporter: is_exporter, is_exporter: is_exporter,
config: "", config: "",
...@@ -482,6 +482,12 @@ ...@@ -482,6 +482,12 @@
storage_url: options.url storage_url: options.url
}); });
}) })
.declareJob('deferChangeState', function deferStateChange(state) {
// onStateChange does too many things (notification, ajax, redirect)
// which leads to infinite rendering loop currently
// Break this by decoupling all those things from render
return this.changeState(state);
})
.onStateChange(function () { .onStateChange(function () {
var gadget = this; var gadget = this;
if (gadget.state.options === "") { if (gadget.state.options === "") {
......
...@@ -79,7 +79,9 @@ ...@@ -79,7 +79,9 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
...@@ -256,7 +258,7 @@ ...@@ -256,7 +258,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>967.60730.33169.16435</string> </value> <value> <string>994.35349.51657.9164</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -274,7 +276,7 @@ ...@@ -274,7 +276,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1530700819.45</float> <float>1630678740.59</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -4,14 +4,14 @@ ...@@ -4,14 +4,14 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Monitoring Hosting Subscription List</title> <title>Monitoring Instance Tree List</title>
<link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/> <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
<script src="rsvp.js"></script> <script src="rsvp.js"></script>
<script src="renderjs.js"></script> <script src="renderjs.js"></script>
<script src="gadget_erp5_page_ojsm_hosting_subscription_list.js"></script> <script src="gadget_erp5_page_ojsm_instance_tree_list.js"></script>
</head> </head>
<body> <body>
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_ojsm_hosting_subscription_list.html</string> </value> <value> <string>gadget_erp5_page_ojsm_instance_tree_list.html</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>gadget_erp5_page_ojsm_hosting_subscription_list_html</string> </value> <value> <string>gadget_erp5_page_ojsm_instance_tree_list_html</string> </value>
</item> </item>
<item> <item>
<key> <string>language</string> </key> <key> <string>language</string> </key>
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Monitoring Hosting Subscription List</string> </value> <value> <string>Monitoring Instance Tree List</string> </value>
</item> </item>
<item> <item>
<key> <string>version</string> </key> <key> <string>version</string> </key>
......
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
.push(function (form_list) { .push(function (form_list) {
var column_list = [ var column_list = [
['status', 'Status'], ['status', 'Status'],
['title', 'Hosting Subscription'], ['title', 'Instance Tree'],
['instance_amount', 'Instance Amount'], ['instance_amount', 'Instance Amount'],
['status_date', 'Status Date'] ['status_date', 'Status Date']
]; ];
...@@ -113,17 +113,17 @@ ...@@ -113,17 +113,17 @@
"default_params": {}, "default_params": {},
"editable": 0, "editable": 0,
"editable_column_list": [], "editable_column_list": [],
"key": "hosting_subscription_listbox", "key": "instance_tree_listbox",
"lines": lines_limit, "lines": lines_limit,
"list_method": "portal_catalog", "list_method": "portal_catalog",
"query": "urn:jio:allDocs?query=%28portal_type%3A%22" + "query": "urn:jio:allDocs?query=%28portal_type%3A%22" +
"Hosting Subscription" + "%22%29", "Instance Tree" + "%22%29",
"portal_type": [], "portal_type": [],
"search_column_list": [['status', 'Status'], ['title', 'Hosting Subscription']], "search_column_list": [['status', 'Status'], ['title', 'Instance Tree']],
"sort_column_list": [['status', 'Status'], ['title', 'Hosting Subscription'], "sort_column_list": [['status', 'Status'], ['title', 'Instance Tree'],
['instance_amount', 'Instance Amount'], ['status_date', 'Status Date']], ['instance_amount', 'Instance Amount'], ['status_date', 'Status Date']],
"sort": [['status', 'ascending'], ['title', 'ascending']], "sort": [['status', 'ascending'], ['title', 'ascending']],
"title": "Hosting Subscriptions", "title": "Instance Trees",
"command": "index", "command": "index",
"type": "ListBox" "type": "ListBox"
} }
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
}) })
.push(function () { .push(function () {
return gadget.updateHeader({ return gadget.updateHeader({
page_title: "Hosting Subscriptions Status", page_title: "Instance Trees Status",
filter_action: true filter_action: true
}); });
}); });
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_ojsm_hosting_subscription_list.js</string> </value> <value> <string>gadget_erp5_page_ojsm_instance_tree_list.js</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>gadget_erp5_page_ojsm_hosting_subscription_list_js</string> </value> <value> <string>gadget_erp5_page_ojsm_instance_tree_list_js</string> </value>
</item> </item>
<item> <item>
<key> <string>language</string> </key> <key> <string>language</string> </key>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Monitoring Hosting Subscription list JS</string> </value> <value> <string>Monitoring Instance Tree list JS</string> </value>
</item> </item>
<item> <item>
<key> <string>version</string> </key> <key> <string>version</string> </key>
......
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
var column_list = [ var column_list = [
['status', 'Status'], ['status', 'Status'],
['title', 'Instance Title'], ['title', 'Instance Title'],
['specialise_title', 'Hosting Subscription'], ['specialise_title', 'Instance Tree'],
['aggregate_reference', 'Computer'], ['aggregate_reference', 'Computer'],
['date', 'Status Date'] ['date', 'Status Date']
]; ];
......
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
['category', 'Status'], ['category', 'Status'],
['source', 'Promise'], ['source', 'Promise'],
['channel_item', 'Software Instance'], ['channel_item', 'Software Instance'],
['channel', 'Hosting Subscription'], ['channel', 'Instance Tree'],
['lastBuildDate', 'Promise Date'], ['lastBuildDate', 'Promise Date'],
['description', 'Message'] ['description', 'Message']
]; ];
......
...@@ -4,13 +4,13 @@ ...@@ -4,13 +4,13 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Monitoring Hosting Subscription View</title> <title>Monitoring Instance Tree View</title>
<link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/> <link href="gadget_officejs_monitoring_custom.css" rel="stylesheet" type="text/css"/>
<script src="rsvp.js"></script> <script src="rsvp.js"></script>
<script src="renderjs.js"></script> <script src="renderjs.js"></script>
<script src="gadget_officejs_jio_hosting_subscription_view.js"></script> <script src="gadget_officejs_jio_instance_tree_view.js"></script>
</head> </head>
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_jio_hosting_subscription_view.html</string> </value> <value> <string>gadget_officejs_jio_instance_tree_view.html</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>gadget_officejs_jio_hosting_subscription_view_html</string> </value> <value> <string>gadget_officejs_jio_instance_tree_view_html</string> </value>
</item> </item>
<item> <item>
<key> <string>language</string> </key> <key> <string>language</string> </key>
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Monitoring Hosting Subscription View</string> </value> <value> <string>Monitoring Instance Tree View</string> </value>
</item> </item>
<item> <item>
<key> <string>version</string> </key> <key> <string>version</string> </key>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
gadget_klass gadget_klass
.setState({ .setState({
ouline_list: "", ouline_list: "",
hosting_subscription: "" instance_tree: ""
}) })
.ready(function (g) { .ready(function (g) {
g.props = {}; g.props = {};
...@@ -90,16 +90,16 @@ ...@@ -90,16 +90,16 @@
.declareMethod("render", function (options) { .declareMethod("render", function (options) {
var gadget = this; var gadget = this;
return gadget.updateHeader({ return gadget.updateHeader({
title: 'Hosting Subscriptions View' title: 'Instance Trees View'
}) })
.push(function () { .push(function () {
return gadget.jio_get(options.jio_key); return gadget.jio_get(options.jio_key);
}) })
.push(function (hosting_doc) { .push(function (hosting_doc) {
return gadget.changeState({hosting_subscription: hosting_doc}); return gadget.changeState({instance_tree: hosting_doc});
}) })
.push(function () { .push(function () {
return gadget.jio_get(gadget.state.hosting_subscription.opml_url); return gadget.jio_get(gadget.state.instance_tree.opml_url);
}) })
.push(function (opml_doc) { .push(function (opml_doc) {
return gadget.changeState({opml: opml_doc}); return gadget.changeState({opml: opml_doc});
...@@ -292,27 +292,27 @@ ...@@ -292,27 +292,27 @@
gadget.getUrlFor({command: 'history_previous'}), gadget.getUrlFor({command: 'history_previous'}),
gadget.getUrlFor({command: 'store_and_change', options: { gadget.getUrlFor({command: 'store_and_change', options: {
page: "ojsm_jump", page: "ojsm_jump",
jio_key: gadget.state.hosting_subscription.opml_url, jio_key: gadget.state.instance_tree.opml_url,
title: gadget.state.hosting_subscription.title, title: gadget.state.instance_tree.title,
view_title: "Related OPML", view_title: "Related OPML",
search_page: "ojsm_status_list" search_page: "ojsm_status_list"
}}) }})
]); ]);
}) })
.push(function (url_list) { .push(function (url_list) {
if (gadget.state.hosting_subscription.instance_amount === 0) { if (gadget.state.instance_tree.instance_amount === 0) {
gadget.element.querySelector('.hosting-title').textContent = gadget.element.querySelector('.hosting-title').textContent =
gadget.state.hosting_subscription.title + " - Not synchronized!"; gadget.state.instance_tree.title + " - Not synchronized!";
return gadget.updateHeader({ return gadget.updateHeader({
page_title: "Hosting Subscription: " + gadget.state.hosting_subscription.title, page_title: "Instance Tree: " + gadget.state.instance_tree.title,
selection_url: url_list[0], selection_url: url_list[0],
jump_url: url_list[1] jump_url: url_list[1]
}); });
} }
gadget.element.querySelector('.hosting-title').textContent = gadget.element.querySelector('.hosting-title').textContent =
gadget.state.hosting_subscription.title; gadget.state.instance_tree.title;
return gadget.updateHeader({ return gadget.updateHeader({
page_title: "Hosting Subscription: " + gadget.state.hosting_subscription.title, page_title: "Instance Tree: " + gadget.state.instance_tree.title,
selection_url: url_list[0], selection_url: url_list[0],
jump_url: url_list[1], jump_url: url_list[1],
save_action: true save_action: true
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
</item> </item>
<item> <item>
<key> <string>default_reference</string> </key> <key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_jio_hosting_subscription_view.js</string> </value> <value> <string>gadget_officejs_jio_instance_tree_view.js</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>gadget_officejs_jio_hosting_subscription_view_js</string> </value> <value> <string>gadget_officejs_jio_instance_tree_view_js</string> </value>
</item> </item>
<item> <item>
<key> <string>language</string> </key> <key> <string>language</string> </key>
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Monitoring Hosting Subscription View Js</string> </value> <value> <string>Monitoring Instance Tree View Js</string> </value>
</item> </item>
<item> <item>
<key> <string>version</string> </key> <key> <string>version</string> </key>
......
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
"type": "PasswordField" "type": "PasswordField"
}, },
"my_requested_state": { "my_requested_state": {
"description": "Hosting subscription state", "description": "Instance tree state",
"title": "Requested State", "title": "Requested State",
"default": doc.state || (doc.active ? "Started" : "Stopped"), "default": doc.state || (doc.active ? "Started" : "Stopped"),
"css_class": "", "css_class": "",
...@@ -221,7 +221,7 @@ ...@@ -221,7 +221,7 @@
page: "ojsm_jump", page: "ojsm_jump",
jio_key: hosting_key, jio_key: hosting_key,
title: gadget.state.opml_title, title: gadget.state.opml_title,
view_title: "Related Hosting Subscription" view_title: "Related Instance Tree"
}}), }}),
gadget.getUrlFor({command: 'change', options: { gadget.getUrlFor({command: 'change', options: {
page: 'ojsm_opml_delete', page: 'ojsm_opml_delete',
......
...@@ -180,7 +180,7 @@ ...@@ -180,7 +180,7 @@
public_url: software_instance._links.public_url.href, public_url: software_instance._links.public_url.href,
instance_reference: software_instance.reference, instance_reference: software_instance.reference,
instance_title: software_instance.title, instance_title: software_instance.title,
hosting_title: opml_doc.title, instance_tree_title: opml_doc.title,
hosting_url: hosting_url, hosting_url: hosting_url,
partition_ipv6: software_instance.ipv6, partition_ipv6: software_instance.ipv6,
partition_ipv4: software_instance.ipv4, partition_ipv4: software_instance.ipv4,
...@@ -439,17 +439,17 @@ ...@@ -439,17 +439,17 @@
"hidden": 0, "hidden": 0,
"type": "EditorField" "type": "EditorField"
}, },
"your_hosting_title": { "your_instance_tree_title": {
"description": "", "description": "",
"title": "Hosting Subscription", "title": "Instance Tree",
"default": link_template({ "default": link_template({
url: gadget.state.hosting_url, url: gadget.state.hosting_url,
title: gadget.state.hosting_title title: gadget.state.instance_tree_title
}), }),
"css_class": "", "css_class": "",
"required": 0, "required": 0,
"editable": 0, "editable": 0,
"key": "hosting_title", "key": "instance_tree_title",
"hidden": 0, "hidden": 0,
"type": "EditorField" "type": "EditorField"
}, },
...@@ -545,7 +545,7 @@ ...@@ -545,7 +545,7 @@
[ [
"right", "right",
[ [
["your_hosting_title"], ["your_instance_title"], ["your_instance_tree_title"], ["your_instance_title"],
["your_computer_reference"], ["your_computer_partition"], ["your_computer_reference"], ["your_computer_partition"],
["your_partition_ipv6"], ["your_software_release_url"] ["your_partition_ipv6"], ["your_software_release_url"]
] ]
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
.push(function () { .push(function () {
return gadget.getUrlFor({command: 'push_history', options: { return gadget.getUrlFor({command: 'push_history', options: {
jio_key: options.doc.reference, jio_key: options.doc.reference,
page: 'ojsm_hosting_subscription_view', page: 'ojsm_instance_tree_view',
opml_key: gadget.state.opml.url opml_key: gadget.state.opml.url
}}); }});
}) })
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
rss_url: rss_url, rss_url: rss_url,
//resource_url: tmp_url, //resource_url: tmp_url,
//process_url: tmp_process_url, //process_url: tmp_process_url,
hosting_title: gadget.state.opml.title, instance_tree_title: gadget.state.opml.title,
hosting_url: hosting_url, hosting_url: hosting_url,
partition_ipv6: current_document.ipv6, partition_ipv6: current_document.ipv6,
partition_ipv4: current_document.ipv4, partition_ipv4: current_document.ipv4,
...@@ -402,17 +402,17 @@ ...@@ -402,17 +402,17 @@
"hidden": hide_link, "hidden": hide_link,
"type": "EditorField" "type": "EditorField"
}, },
"your_hosting_title": { "your_instance_tree_title": {
"description": "", "description": "",
"title": "Hosting Subscription", "title": "Instance Tree",
"default": link_template({ "default": link_template({
url: gadget.state.hosting_url, url: gadget.state.hosting_url,
title: gadget.state.hosting_title title: gadget.state.instance_tree_title
}), }),
"css_class": "", "css_class": "",
"required": 0, "required": 0,
"editable": 0, "editable": 0,
"key": "hosting_title", "key": "instance_tree_title",
"hidden": 0, "hidden": 0,
"type": "EditorField" "type": "EditorField"
}, },
...@@ -512,7 +512,7 @@ ...@@ -512,7 +512,7 @@
[ [
"right", "right",
[ [
["your_hosting_title"], ["your_instance_title"], ["your_instance_tree_title"], ["your_instance_title"],
["your_computer_reference"], ["your_computer_partition"], ["your_computer_reference"], ["your_computer_partition"],
["your_partition_ipv4"], ["your_partition_ipv6"], ["your_partition_ipv4"], ["your_partition_ipv6"],
["your_software_release_url"], ["your_rss_url"] ["your_software_release_url"], ["your_rss_url"]
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<script id="panel-template-body-list" type="text/x-handlebars-template"> <script id="panel-template-body-list" type="text/x-handlebars-template">
<li class="ui-first-child"><a href="{{promise_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-check" data-i18n="Promises" accesskey="p">Promises</a></li> <li class="ui-first-child"><a href="{{promise_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-check" data-i18n="Promises" accesskey="p">Promises</a></li>
<li><a href="{{instance_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-cube" data-i18n="Software Instances">Software Instances</a></li> <li><a href="{{instance_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-cube" data-i18n="Software Instances">Software Instances</a></li>
<li><a href="{{hosting_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-cubes" data-i18n="Hosting Subscriptions">Hosting Subscriptions</a></li> <li><a href="{{hosting_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-cubes" data-i18n="Instance Trees">Instance Trees</a></li>
<li><a href="{{configurator_href}}" class="ui-btn ui-btn-icon-left ui-icon-gear" data-i18n="Monitoring Configurations">Monitoring Configurations</a></li> <li><a href="{{configurator_href}}" class="ui-btn ui-btn-icon-left ui-icon-gear" data-i18n="Monitoring Configurations">Monitoring Configurations</a></li>
<li><a href="{{synchronize_href}}" class="ui-btn ui-btn-icon-left ui-icon-refresh" data-i18n="Synchronize" accesskey="r">Synchronize</a></li> <li><a href="{{synchronize_href}}" class="ui-btn ui-btn-icon-left ui-icon-refresh" data-i18n="Synchronize" accesskey="r">Synchronize</a></li>
<li class="ui-last-child"><a href="{{import_export_href}}" class="ui-btn ui-btn-icon-left ui-icon-exchange" data-i18n="OPML Import / Export">OPML Import / Export</a></li> <li class="ui-last-child"><a href="{{import_export_href}}" class="ui-btn ui-btn-icon-left ui-icon-exchange" data-i18n="OPML Import / Export">OPML Import / Export</a></li>
......
...@@ -144,7 +144,7 @@ ...@@ -144,7 +144,7 @@
return RSVP.all([ return RSVP.all([
context.getUrlFor({command: 'display', options: {page: "ojsm_status_list"}}), context.getUrlFor({command: 'display', options: {page: "ojsm_status_list"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_software_instance_list"}}), context.getUrlFor({command: 'display', options: {page: "ojsm_software_instance_list"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_hosting_subscription_list"}}), context.getUrlFor({command: 'display', options: {page: "ojsm_instance_tree_list"}}),
context.getUrlFor({command: 'display', options: {page: "settings_configurator"}}), context.getUrlFor({command: 'display', options: {page: "settings_configurator"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_import_export"}}), context.getUrlFor({command: 'display', options: {page: "ojsm_import_export"}}),
context.getUrlFor({command: 'display', options: {page: "ojsm_synchronize", reset: 1}}) context.getUrlFor({command: 'display', options: {page: "ojsm_synchronize", reset: 1}})
......
...@@ -158,7 +158,7 @@ ...@@ -158,7 +158,7 @@
var remove_id_list = [], var remove_id_list = [],
remove_signature_id_list = []; remove_signature_id_list = [];
// remove related hosting subscription // remove related instance tree
remove_id_list.push(generateHash(id)); remove_id_list.push(generateHash(id));
// removed saved opml content // removed saved opml content
remove_signature_id_list.push({ remove_signature_id_list.push({
...@@ -402,7 +402,7 @@ ...@@ -402,7 +402,7 @@
}); });
} }
function updateHostingSubscriptionState(hosting, element) { function updateInstanceTreeState(hosting, element) {
var status = element.status.toUpperCase(); var status = element.status.toUpperCase();
if (hosting.instance_amount === 0) { if (hosting.instance_amount === 0) {
...@@ -436,16 +436,16 @@ ...@@ -436,16 +436,16 @@
opml_result_list, opml_result_list,
current_signature_dict = {}, current_signature_dict = {},
fetch_remote_opml = false, fetch_remote_opml = false,
hosting_subscription, instance_tree,
id; id;
id = generateHash(opml_url); id = generateHash(opml_url);
opml_storage = createStorage(context, opml_spec, id); opml_storage = createStorage(context, opml_spec, id);
// Hosting Subscription is build from OPML and it has status // Instance Tree is build from OPML and it has status
hosting_subscription = { instance_tree = {
title: opml_title || "", title: opml_title || "",
portal_type: "Hosting Subscription", portal_type: "Instance Tree",
opml_url: opml_url, opml_url: opml_url,
status: "WARNING", status: "WARNING",
instance_amount: 0, instance_amount: 0,
...@@ -508,7 +508,7 @@ ...@@ -508,7 +508,7 @@
if (opml_result_list.data.total_rows > 0) { if (opml_result_list.data.total_rows > 0) {
if (opml_result_list.data.rows[0].doc.title) { if (opml_result_list.data.rows[0].doc.title) {
hosting_subscription.title = opml_result_list.data.rows[0] instance_tree.title = opml_result_list.data.rows[0]
.doc.title; .doc.title;
} }
if (fetch_remote_opml) { if (fetch_remote_opml) {
...@@ -612,8 +612,8 @@ ...@@ -612,8 +612,8 @@
item_signature_dict = {}; item_signature_dict = {};
if (element.type === 'global') { if (element.type === 'global') {
updateHostingSubscriptionState(hosting_subscription, element); updateInstanceTreeState(instance_tree, element);
hosting_subscription.instance_amount += 1; instance_tree.instance_amount += 1;
if (element.aggregate_reference === undefined) { if (element.aggregate_reference === undefined) {
// XXX - document need to be updated to keep compatibility // XXX - document need to be updated to keep compatibility
element = fixGlobalInstanceDocument(element); element = fixGlobalInstanceDocument(element);
...@@ -728,7 +728,7 @@ ...@@ -728,7 +728,7 @@
} }
opml_document_list.push({ opml_document_list.push({
id: id, id: id,
doc: hosting_subscription doc: instance_tree
}); });
return [opml_document_list, delete_key_list, attachment_document_list]; return [opml_document_list, delete_key_list, attachment_document_list];
}); });
......
...@@ -79,11 +79,11 @@ url_list = [ ...@@ -79,11 +79,11 @@ url_list = [
"gadget_erp5_sort_editor.html", "gadget_erp5_sort_editor.html",
"gadget_erp5_sort_editor.js", "gadget_erp5_sort_editor.js",
"gadget_officejs_monitoring_jio.html", "gadget_officejs_monitoring_jio.html",
"gadget_erp5_page_ojsm_hosting_subscription_list.html", "gadget_erp5_page_ojsm_instance_tree_list.html",
"gadget_officejs_monitoring_parameter_view.html", "gadget_officejs_monitoring_parameter_view.html",
"gadget_erp5_page_settings_configurator.html", "gadget_erp5_page_settings_configurator.html",
"gadget_erp5_page_ojsm_processes_view.html", "gadget_erp5_page_ojsm_processes_view.html",
"gadget_officejs_jio_hosting_subscription_view.html", "gadget_officejs_jio_instance_tree_view.html",
"gadget_officejs_monitoring_sync.html", "gadget_officejs_monitoring_sync.html",
"gadget_officejs_jio_software_instance_view.html", "gadget_officejs_jio_software_instance_view.html",
"gadget_erp5_page_ojsm_software_instance_list.html", "gadget_erp5_page_ojsm_software_instance_list.html",
...@@ -104,12 +104,12 @@ url_list = [ ...@@ -104,12 +104,12 @@ url_list = [
"gadget_erp5_page_ojsm_dispatch.html", "gadget_erp5_page_ojsm_dispatch.html",
"gadget_ojsm_graph_field.html", "gadget_ojsm_graph_field.html",
"gadget_officejs_monitoring_jio.js", "gadget_officejs_monitoring_jio.js",
"gadget_erp5_page_ojsm_hosting_subscription_list.js", "gadget_erp5_page_ojsm_instance_tree_list.js",
"gadget_officejs_monitoring_parameter_view.js", "gadget_officejs_monitoring_parameter_view.js",
"gadget_erp5_page_settings_configurator.js", "gadget_erp5_page_settings_configurator.js",
"gadget_erp5_page_ojsm_processes_view.js", "gadget_erp5_page_ojsm_processes_view.js",
"gadget_officejs_monitoring_custom.css", "gadget_officejs_monitoring_custom.css",
"gadget_officejs_jio_hosting_subscription_view.js", "gadget_officejs_jio_instance_tree_view.js",
"gadget_erp5_global.js", "gadget_erp5_global.js",
"gadget_officejs_monitoring_sync.js", "gadget_officejs_monitoring_sync.js",
"gadget_erp5_page_ojsm_software_instance_list.js", "gadget_erp5_page_ojsm_software_instance_list.js",
......
web_page_module/gadget_officejs_jio_hosting_subscription_view_html web_page_module/gadget_officejs_jio_instance_tree_view_html
web_page_module/gadget_officejs_jio_hosting_subscription_view_js web_page_module/gadget_officejs_jio_instance_tree_view_js
web_page_module/gadget_erp5_field_status_* web_page_module/gadget_erp5_field_status_*
web_page_module/gadget_erp5_page_ojsm_* web_page_module/gadget_erp5_page_ojsm_*
web_page_module/gadget_erp5_page_settings_configurator_* web_page_module/gadget_erp5_page_settings_configurator_*
......
web_page_module/gadget_officejs_jio_hosting_subscription_view_html web_page_module/gadget_officejs_jio_instance_tree_view_html
web_page_module/gadget_officejs_jio_hosting_subscription_view_js web_page_module/gadget_officejs_jio_instance_tree_view_js
web_page_module/gadget_erp5_field_status_* web_page_module/gadget_erp5_field_status_*
web_page_module/gadget_erp5_page_ojsm_* web_page_module/gadget_erp5_page_ojsm_*
web_page_module/gadget_erp5_page_settings_configurator_* web_page_module/gadget_erp5_page_settings_configurator_*
......
...@@ -2,8 +2,8 @@ image_module/gadget_officejs_appstore_rapid_spage ...@@ -2,8 +2,8 @@ image_module/gadget_officejs_appstore_rapid_spage
web_page_module/gadget_erp5_field_status_* web_page_module/gadget_erp5_field_status_*
web_page_module/gadget_erp5_page_ojsm_* web_page_module/gadget_erp5_page_ojsm_*
web_page_module/gadget_erp5_page_settings_configurator_* web_page_module/gadget_erp5_page_settings_configurator_*
web_page_module/gadget_officejs_jio_hosting_subscription_view_html web_page_module/gadget_officejs_jio_instance_tree_view_html
web_page_module/gadget_officejs_jio_hosting_subscription_view_js web_page_module/gadget_officejs_jio_instance_tree_view_js
web_page_module/gadget_officejs_jio_opml_view_html web_page_module/gadget_officejs_jio_opml_view_html
web_page_module/gadget_officejs_jio_opml_view_js web_page_module/gadget_officejs_jio_opml_view_js
web_page_module/gadget_officejs_jio_promise_view_html web_page_module/gadget_officejs_jio_promise_view_html
......
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
<tr> <tr>
<td>storeText</td> <td>storeText</td>
<td>//table[contains(@class, 'ui-table-inset')]/tbody/tr[1]/td[1]/a</td> <td>//table[contains(@class, 'ui-table-inset')]/tbody/tr[1]/td[1]/a</td>
<td>hosting_title</td> <td>instance_tree_title</td>
</tr> </tr>
<tr> <tr>
<td>click</td> <td>click</td>
...@@ -209,7 +209,7 @@ ...@@ -209,7 +209,7 @@
</tr> </tr>
<tr> <tr>
<td>click</td> <td>click</td>
<td>//a[@data-i18n='Hosting Subscriptions']</td> <td>//a[@data-i18n='Instance Trees']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -219,7 +219,7 @@ ...@@ -219,7 +219,7 @@
</tr> </tr>
<tr> <tr>
<td>assertTextPresent</td> <td>assertTextPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -239,7 +239,7 @@ ...@@ -239,7 +239,7 @@
</tr> </tr>
<tr> <tr>
<td>assertTextPresent</td> <td>assertTextPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -265,7 +265,7 @@ ...@@ -265,7 +265,7 @@
</tr> </tr>
<tr> <tr>
<td>assertTextPresent</td> <td>assertTextPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -296,7 +296,7 @@ ...@@ -296,7 +296,7 @@
</tr> </tr>
<tr> <tr>
<td>assertTextPresent</td> <td>assertTextPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -327,7 +327,7 @@ ...@@ -327,7 +327,7 @@
</tr> </tr>
<tr> <tr>
<td>assertTextPresent</td> <td>assertTextPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -378,7 +378,7 @@ ...@@ -378,7 +378,7 @@
<tr> <tr>
<td>verifyText</td> <td>verifyText</td>
<td>//table[contains(@class, 'ui-table-inset')]/tbody/tr[1]/td[1]/a</td> <td>//table[contains(@class, 'ui-table-inset')]/tbody/tr[1]/td[1]/a</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
</tr> </tr>
<tr> <tr>
<td>click</td> <td>click</td>
...@@ -387,7 +387,7 @@ ...@@ -387,7 +387,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>waitForElementPresent</td>
<td>//a[@data-i18n='&#36;hosting_title}']</td> <td>//a[@data-i18n='&#36;{instance_tree_title}']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -453,7 +453,7 @@ ...@@ -453,7 +453,7 @@
<tr> <tr>
<td>verifyText</td> <td>verifyText</td>
<td>//table[contains(@class, 'ui-table-inset')]/tbody/tr[1]/td[1]/a</td> <td>//table[contains(@class, 'ui-table-inset')]/tbody/tr[1]/td[1]/a</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
</tr> </tr>
<tr> <tr>
<td>click</td> <td>click</td>
...@@ -467,7 +467,7 @@ ...@@ -467,7 +467,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>waitForElementPresent</td>
<td>//a[@data-i18n='&#36;hosting_title}']</td> <td>//a[@data-i18n='&#36;{instance_tree_title}']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -492,12 +492,12 @@ ...@@ -492,12 +492,12 @@
</tr> </tr>
<tr> <tr>
<td>assertTextNotPresent</td> <td>assertTextNotPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>click</td> <td>click</td>
<td>//a[@data-i18n='Hosting Subscriptions']</td> <td>//a[@data-i18n='Instance Trees']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -507,7 +507,7 @@ ...@@ -507,7 +507,7 @@
</tr> </tr>
<tr> <tr>
<td>assertTextNotPresent</td> <td>assertTextNotPresent</td>
<td>&#36;{hosting_title}</td> <td>&#36;{instance_tree_title}</td>
<td></td> <td></td>
</tr> </tr>
</tbody></table> </tbody></table>
......
...@@ -158,17 +158,17 @@ ...@@ -158,17 +158,17 @@
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>waitForElementPresent</td>
<td>//a[@data-i18n='Hosting Subscriptions']</td> <td>//a[@data-i18n='Instance Trees']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>click</td> <td>click</td>
<td>//a[@data-i18n='Hosting Subscriptions']</td> <td>//a[@data-i18n='Instance Trees']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>waitForElementPresent</td>
<td>//h1[text()='Hosting Subscriptions ']</td> <td>//h1[text()='Instance Trees ']</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -70,7 +70,7 @@ class TestZeleniumCore(ERP5TypeFunctionalTestCase): ...@@ -70,7 +70,7 @@ class TestZeleniumCore(ERP5TypeFunctionalTestCase):
instance_list = [] instance_list = []
httpd = None httpd = None
httpd_is_alive = False httpd_is_alive = False
root_title = "TEST Hosting Subscription" root_title = "TEST Instance Tree"
def start_httpd_server(self, root_folder): def start_httpd_server(self, root_folder):
self.httpd = SocketServer.TCPServer(('localhost', 5378), CustomHTTPRequestHandler) self.httpd = SocketServer.TCPServer(('localhost', 5378), CustomHTTPRequestHandler)
...@@ -143,7 +143,7 @@ class TestZeleniumCore(ERP5TypeFunctionalTestCase): ...@@ -143,7 +143,7 @@ class TestZeleniumCore(ERP5TypeFunctionalTestCase):
result_dict = { result_dict = {
"status": status, "status": status,
"change-time": now_time, "change-time": now_time,
"hosting_subscription": self.root_title, "instance_tree": self.root_title,
"title": title, "title": title,
"start-date": start_date, "start-date": start_date,
"instance": instance['title'], "instance": instance['title'],
......
...@@ -548,8 +548,6 @@ ...@@ -548,8 +548,6 @@
if (main.render !== undefined) { if (main.render !== undefined) {
return main.render(JSON.parse(gadget.props.m_options_string)); return main.render(JSON.parse(gadget.props.m_options_string));
} }
}, function () {
return;
}); });
}) })
......
...@@ -234,7 +234,7 @@ ...@@ -234,7 +234,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>989.53405.52051.4676</string> </value> <value> <string>994.35438.36279.54937</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1612535723.63</float> <float>1630683787.8</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
href: options.href, href: options.href,
alt: options.alt, alt: options.alt,
name: options.name, name: options.name,
title: options.title,
append: getFirstNonEmpty(options.append, ""), append: getFirstNonEmpty(options.append, ""),
prepend: getFirstNonEmpty(options.prepend, "") prepend: getFirstNonEmpty(options.prepend, "")
}; };
...@@ -68,6 +69,9 @@ ...@@ -68,6 +69,9 @@
if (this.state.alt) { if (this.state.alt) {
new_element.setAttribute('alt', this.state.alt); new_element.setAttribute('alt', this.state.alt);
} }
if (this.state.title) {
new_element.setAttribute('title', this.state.title);
}
if (modification_dict.hasOwnProperty("data")) { if (modification_dict.hasOwnProperty("data")) {
data = JSON.parse(modification_dict.data); data = JSON.parse(modification_dict.data);
for (data_attr in data) { for (data_attr in data) {
......
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>989.27523.29749.43383</string> </value> <value> <string>991.25772.62050.38894</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1614350654.73</float> <float>1626770589.98</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
<value> <value>
<list> <list>
<string>default</string> <string>default</string>
<string>editable</string>
<string>title</string> <string>title</string>
</list> </list>
</value> </value>
...@@ -58,10 +57,6 @@ ...@@ -58,10 +57,6 @@
<key> <string>default</string> </key> <key> <string>default</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
...@@ -89,10 +84,6 @@ ...@@ -89,10 +84,6 @@
<key> <string>default</string> </key> <key> <string>default</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value> <value> <string>my_string_field</string> </value>
......
...@@ -286,7 +286,7 @@ def transaction_pubevents(request, response, err_hook, tm=transaction.manager): ...@@ -286,7 +286,7 @@ def transaction_pubevents(request, response, err_hook, tm=transaction.manager):
reraise(*exc_info) reraise(*exc_info)
if err_hook: if err_hook:
parents = request['PARENTS'] parents = request.get('PARENTS')
if parents: if parents:
parents = parents[0] parents = parents[0]
retry = False retry = False
......
...@@ -2,7 +2,7 @@ from setuptools import setup, find_packages ...@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
import glob import glob
import os import os
version = '0.4.70' version = '0.4.71'
name = 'erp5.util' name = 'erp5.util'
long_description = open("README.erp5.util.txt").read() + "\n" long_description = open("README.erp5.util.txt").read() + "\n"
......
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