Commit 3caecb6b authored by Łukasz Nowak's avatar Łukasz Nowak

Merge remote-tracking branch 'origin/software_installation'

Conflicts:
	master/bt5/vifib_web/bt/revision
parents ff7d6b29 c7b5862f
...@@ -56,7 +56,7 @@ portal_preferences = portal.portal_preferences\n ...@@ -56,7 +56,7 @@ portal_preferences = portal.portal_preferences\n
\n \n
if slap_state == \'free\':\n if slap_state == \'free\':\n
computer = context.getParentValue()\n computer = context.getParentValue()\n
return computer.Computer_getSoftwareReleaseUrlStringList([\'stopped\'])\n return computer.Computer_getSoftwareReleaseUrlStringList()\n
\n \n
elif slap_state == \'busy\':\n elif slap_state == \'busy\':\n
\n \n
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
portal = context.getPortalObject()\n portal = context.getPortalObject()\n
portal_type = "Software Release"\n portal_type = "Software Release"\n
\n \n
url_string_list = context.Computer_getSoftwareReleaseUrlStringList([\'confirmed\', \'started\', \'stopped\', \'delivered\'])\n url_string_list = context.Computer_getSoftwareReleaseUrlStringList()\n
if url_string_list:\n if url_string_list:\n
return context.portal_catalog(\n return context.portal_catalog(\n
portal_type=portal_type,\n portal_type=portal_type,\n
......
...@@ -51,41 +51,27 @@ ...@@ -51,41 +51,27 @@
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>computer = context\n <value> <string>computer = context\n
\n
from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
portal = context.getPortalObject()\n portal = context.getPortalObject()\n
delivery_line = portal.portal_catalog.getResultValue(\n \n
portal_type=\'Purchase Packing List Line\',\n software_installation_list = portal.portal_catalog(\n
default_resource_uid=[portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareSetupResource()).getUid(), portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareCleanupResource()).getUid()],\n portal_type=\'Software Installation\',\n
default_aggregate_uid=ComplexQuery(\n default_aggregate_uid=context.getUid(),\n
Query(default_aggregate_uid=computer.getUid()),\n validation_state=\'validated\',\n
Query(default_aggregate_uid=software_release_uid),\n
operator=\'AND\'\n
),\n
simulation_state=portal.getPortalCurrentInventoryStateList() + portal.getPortalReservedInventoryStateList() + portal.getPortalTransitInventoryStateList(),\n
limit=1,\n limit=1,\n
sort_on=((\'movement.start_date\', \'DESC\'),),\n url_string={\'query\': portal.portal_catalog.getResultValue(uid=software_release_uid).getUrlString(), \'key\': \'ExactMatch\'},\n
)\n sort_on=((\'creation_date\', \'DESC\'),)\n
)\n
\n
if len(software_installation_list) == 0:\n
return \'Destroyed\' \n
\n \n
resource = delivery_line.getResource()\n software_installation = software_installation_list[0].getObject()\n
state = delivery_line.getSimulationState()\n
\n \n
if resource == portal.portal_preferences.getPreferredSoftwareSetupResource():\n s = software_installation.getSlapState()\n
if state == \'confirmed\':\n if s == \'start_requested\':\n
return \'Installation requested\'\n return \'Installation requested\'\n
elif state == \'started\':\n else:\n
return \'Installation in progress\'\n
elif state == \'stopped\':\n
return \'Installed\'\n
else:\n
script.log(delivery_line.getPath())\n
return \'Destroyed\'\n
elif resource == portal.portal_preferences.getPreferredSoftwareCleanupResource():\n
if state == \'confirmed\':\n
return \'Destruction requested\'\n return \'Destruction requested\'\n
else:\n
script.log(delivery_line.getPath())\n
return \'Destroyed\'\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
......
...@@ -50,38 +50,22 @@ ...@@ -50,38 +50,22 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n <value> <string>url_string_list = []\n
computer = context\n for software_installation in context.getPortalObject().portal_catalog(\n
portal = context.getPortalObject()\n portal_type=\'Software Installation\',\n
if len(state_list) == 1:\n validation_state=\'validated\',\n
state_string = "= \'%s\'" % state_list[0]\n default_aggregate_uid=context.getUid()\n
else:\n ):\n
state_string = "IN %s" % (tuple(state_list),)\n if software_installation.getSlapState() == \'start_requested\':\n
catalog_query = portal.portal_catalog(\n url_string = software_installation.getUrlString()\n
ComplexQuery(\n if url_string:\n
Query(\n url_string_list.append(url_string)\n
aggregate_aggregate_uid=computer.getUid(),\n return url_string_list\n
table_alias_list=(\n
("catalog", "found_movement"),\n
("category", "service_resource"),\n
("category", "software_release_aggregate"),\n
("category", "computer_aggregate"),\n
),\n
),\n
Query(\n
portal_type=\'Software Release\',\n
),\n
operator="AND"),\n
where_expression="found_movement.simulation_state %s " \\\n
" AND " \\\n
"found_movement.portal_type=\'Purchase Packing List Line\'" % \\\n
(state_string,))\n
return [q.getUrlString() for q in catalog_query if q.getUrlString()]\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>state_list</string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
......
...@@ -92,7 +92,6 @@ ...@@ -92,7 +92,6 @@
<list> <list>
<string>your_busy_computer_partition_list_image</string> <string>your_busy_computer_partition_list_image</string>
<string>listbox_image</string> <string>listbox_image</string>
<string>listbox_parent_state</string>
<string>listbox_software_release</string> <string>listbox_software_release</string>
<string>listbox_installation_state</string> <string>listbox_installation_state</string>
<string>listbox_usage</string> <string>listbox_usage</string>
......
<?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>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_parent_state</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>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>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewWebFieldLibrary</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>String Field</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: cell.getParentValue().PurchasePackingList_getSimulationStateAsWeb()</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>computer = context.getAggregateValue(portal_type=\'Computer\')\n
if computer.getAllocationScope() == \'open/public\':\n
return computer.getUid()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>PurchasePackingListLine_getPublicComputerUid</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>return context.getAggregateValue(portal_type=\'Software Release\').getUid()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>PurchasePackingListLine_getSoftwareReleaseUid</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
</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_doSelect</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareInstallationModule_viewSoftwareInstallationList</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareInstallationModule_viewSoftwareInstallationList</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>Software Installations</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>
...@@ -10,17 +10,16 @@ ...@@ -10,17 +10,16 @@
<key> <string>delegated_list</string> </key> <key> <string>delegated_list</string> </key>
<value> <value>
<list> <list>
<string>css_class</string> <string>all_columns</string>
<string>default</string> <string>columns</string>
<string>enabled</string> <string>selection_name</string>
<string>href</string>
<string>title</string> <string>title</string>
</list> </list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>my_destroy_button</string> </value> <value> <string>listbox</string> </value>
</item> </item>
<item> <item>
<key> <string>message_values</string> </key> <key> <string>message_values</string> </key>
...@@ -56,20 +55,6 @@ ...@@ -56,20 +55,6 @@
<key> <string>tales</string> </key> <key> <string>tales</string> </key>
<value> <value>
<dictionary> <dictionary>
<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>enabled</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
...@@ -78,20 +63,10 @@ ...@@ -78,20 +63,10 @@
<key> <string>form_id</string> </key> <key> <string>form_id</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item>
<key> <string>href</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item> <item>
<key> <string>target</string> </key> <key> <string>target</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary> </dictionary>
</value> </value>
</item> </item>
...@@ -100,28 +75,89 @@ ...@@ -100,28 +75,89 @@
<value> <value>
<dictionary> <dictionary>
<item> <item>
<key> <string>css_class</string> </key> <key> <string>all_columns</string> </key>
<value> <string>nolabel cancel validate alignr</string> </value> <value>
</item> <list>
<item> <tuple>
<key> <string>default</string> </key> <string>title</string>
<value> <string>Destroy</string> </value> <string>Title</string>
</tuple>
<tuple>
<string>reference</string>
<string>Reference</string>
</tuple>
<tuple>
<string>url_string</string>
<string>URL</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>translated_slap_state_title</string>
<string>Slap State</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>
<item> <item>
<key> <string>enabled</string> </key> <key> <string>columns</string> </key>
<value> <int>0</int> </value> <value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>reference</string>
<string>Reference</string>
</tuple>
<tuple>
<string>url_string</string>
<string>URL</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
<tuple>
<string>translated_slap_state_title</string>
<string>Slap State</string>
</tuple>
</list>
</value>
</item> </item>
<item> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string>my_hyperlink</string> </value> <value> <string>my_list_mode_listbox</string> </value>
</item> </item>
<item> <item>
<key> <string>form_id</string> </key> <key> <string>form_id</string> </key>
<value> <string>Base_viewWebFieldLibrary</string> </value> <value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Software Installation</string>
<string>Software Installation</string>
</tuple>
</list>
</value>
</item> </item>
<item> <item>
<key> <string>href</string> </key> <key> <string>selection_name</string> </key>
<value> <string>./rent-a-service</string> </value> <value> <string>software_installation_module_selection</string> </value>
</item> </item>
<item> <item>
<key> <string>target</string> </key> <key> <string>target</string> </key>
...@@ -129,7 +165,7 @@ ...@@ -129,7 +165,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Destroy</string> </value> <value> <string>Software Installations</string> </value>
</item> </item>
</dictionary> </dictionary>
</value> </value>
...@@ -137,30 +173,4 @@ ...@@ -137,30 +173,4 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </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: context.getPortalObject().Base_checkPermission(\'software_instance_module\', \'Add portal content\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: \'./Computer_viewDestructionConfirmationDialog?software_release_uid=%s\' % context.REQUEST.get(\'software_release_uid\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData> </ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
</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>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/>
</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/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_reference</string>
<string>my_url_string</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_translated_validation_state_title</string>
<string>my_translated_slap_state_title</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareInstallation_view</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>SoftwareInstallation_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>Software Installation</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/>
</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/>
</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>field_id</string> </key>
<value> <string>my_view_mode_read_only_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/>
</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_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>
</ZopeData>
...@@ -10,16 +10,13 @@ ...@@ -10,16 +10,13 @@
<key> <string>delegated_list</string> </key> <key> <string>delegated_list</string> </key>
<value> <value>
<list> <list>
<string>css_class</string>
<string>display_width</string>
<string>editable</string>
<string>title</string> <string>title</string>
</list> </list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>my_title</string> </value> <value> <string>my_translated_slap_state_title</string> </value>
</item> </item>
<item> <item>
<key> <string>message_values</string> </key> <key> <string>message_values</string> </key>
...@@ -74,25 +71,13 @@ ...@@ -74,25 +71,13 @@
<key> <string>values</string> </key> <key> <string>values</string> </key>
<value> <value>
<dictionary> <dictionary>
<item>
<key> <string>css_class</string> </key>
<value> <string>inline</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> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value> <value> <string>my_view_mode_translated_workflow_state_title</string> </value>
</item> </item>
<item> <item>
<key> <string>form_id</string> </key> <key> <string>form_id</string> </key>
<value> <string>Base_viewWebFieldLibrary</string> </value> <value> <string>Base_viewFieldLibrary</string> </value>
</item> </item>
<item> <item>
<key> <string>target</string> </key> <key> <string>target</string> </key>
...@@ -100,7 +85,7 @@ ...@@ -100,7 +85,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Computer Title</string> </value> <value> <string>Slap State</string> </value>
</item> </item>
</dictionary> </dictionary>
</value> </value>
......
<?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_view_mode_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>
...@@ -10,16 +10,13 @@ ...@@ -10,16 +10,13 @@
<key> <string>delegated_list</string> </key> <key> <string>delegated_list</string> </key>
<value> <value>
<list> <list>
<string>css_class</string>
<string>display_width</string>
<string>editable</string>
<string>title</string> <string>title</string>
</list> </list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>my_title</string> </value> <value> <string>my_url_string</string> </value>
</item> </item>
<item> <item>
<key> <string>message_values</string> </key> <key> <string>message_values</string> </key>
...@@ -74,25 +71,13 @@ ...@@ -74,25 +71,13 @@
<key> <string>values</string> </key> <key> <string>values</string> </key>
<value> <value>
<dictionary> <dictionary>
<item>
<key> <string>css_class</string> </key>
<value> <string>inline</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> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value> <value> <string>my_view_mode_read_only_reference</string> </value>
</item> </item>
<item> <item>
<key> <string>form_id</string> </key> <key> <string>form_id</string> </key>
<value> <string>Base_viewWebFieldLibrary</string> </value> <value> <string>Base_viewFieldLibrary</string> </value>
</item> </item>
<item> <item>
<key> <string>target</string> </key> <key> <string>target</string> </key>
...@@ -100,7 +85,7 @@ ...@@ -100,7 +85,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Computer Title</string> </value> <value> <string>Software Release URL</string> </value>
</item> </item>
</dictionary> </dictionary>
</value> </value>
......
479 487
\ No newline at end of file \ No newline at end of file
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
</item> </item>
<item> <item>
<key> <string>custom_render_method_id</string> </key> <key> <string>custom_render_method_id</string> </key>
<value> <string>WebSection_viewPublicSoftwareReleaseList</string> </value> <value> <string>WebSection_viewPublicSoftwareProductList</string> </value>
</item> </item>
<item> <item>
<key> <string>default_page_displayed</string> </key> <key> <string>default_page_displayed</string> </key>
......
108 109
\ No newline at end of file \ No newline at end of file
<local_roles_item>
<local_roles>
<role id='ERP5TypeTestCase'>
<item>Owner</item>
</role>
<role id='G-COMPANY'>
<item>Auditor</item>
<item>Author</item>
</role>
<role id='R-COMPUTER'>
<item>Auditor</item>
</role>
<role id='R-MEMBER'>
<item>Auditor</item>
<item>Author</item>
</role>
</local_roles>
</local_roles_item>
\ No newline at end of file
<type_roles>
<role id='Auditor'>
<property id='title'>Computer</property>
<multi_property id='category'>role/computer</multi_property>
<multi_property id='base_category'>role</multi_property>
</role>
<role id='Author; Auditor'>
<property id='title'>Group company</property>
<multi_property id='category'>group/company</multi_property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Auditor; Author'>
<property id='title'>Member</property>
<multi_property id='category'>role/member</multi_property>
<multi_property id='base_category'>role</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Assignor'>
<property id='title'>Computer</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='base_category'>aggregate</multi_property>
</role>
<role id='Assignor'>
<property id='title'>Group company</property>
<multi_property id='category'>group/company</multi_property>
<multi_property id='base_category'>group</multi_property>
</role>
<role id='Assignee'>
<property id='title'>Owner become Assignee</property>
<property id='description'>XXX Needed to allow doActionFor while creating the document</property>
<property id='base_category_script'>ERP5Type_acquireSecurityFromOwner</property>
<multi_property id='base_category'>source</multi_property>
</role>
</type_roles>
\ No newline at end of file
...@@ -75,6 +75,10 @@ ...@@ -75,6 +75,10 @@
<type>Slave Instance</type> <type>Slave Instance</type>
<workflow>local_permission_vifib_interaction_workflow</workflow> <workflow>local_permission_vifib_interaction_workflow</workflow>
</chain> </chain>
<chain>
<type>Software Installation</type>
<workflow>local_permission_vifib_interaction_workflow</workflow>
</chain>
<chain> <chain>
<type>Software Instance</type> <type>Software Instance</type>
<workflow>local_permission_vifib_interaction_workflow</workflow> <workflow>local_permission_vifib_interaction_workflow</workflow>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Category Membership Arity Constraint" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>constraint_base_category</string> </key>
<value>
<tuple>
<string>aggregate</string>
</tuple>
</value>
</item>
<item>
<key> <string>constraint_portal_type</string> </key>
<value> <string>python: \'Software Installation\'</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>purchase_packing_list_line_aggregate_software_installation_constraint</string> </value>
</item>
<item>
<key> <string>max_arity</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>message_arity_not_in_range</string> </key>
<value> <string>There should be exactly one ${portal_type} present in Items</string> </value>
</item>
<item>
<key> <string>message_arity_too_small</string> </key>
<value> <string>There should be exactly one ${portal_type} present in Items</string> </value>
</item>
<item>
<key> <string>message_arity_with_portal_type_not_in_range</string> </key>
<value> <string>There should be exactly one ${portal_type} present in Items</string> </value>
</item>
<item>
<key> <string>message_arity_with_portal_type_too_small</string> </key>
<value> <string>There should be exactly one ${portal_type} present in Items</string> </value>
</item>
<item>
<key> <string>min_arity</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Membership Arity Constraint</string> </value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: object.getResourceValue() is not None and object.getResource() == object.portal_preferences.getPreferredSoftwareSetupResource()</string> </value>
</item>
<item>
<key> <string>use_acquisition</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -77,7 +77,7 @@ class TestVifibComputerNetworkSecurity(TestVifibSlapWebServiceMixin): ...@@ -77,7 +77,7 @@ class TestVifibComputerNetworkSecurity(TestVifibSlapWebServiceMixin):
def test_ComputerNetworkModuleLocalRoles(self): def test_ComputerNetworkModuleLocalRoles(self):
module = self.portal.computer_network_module module = self.portal.computer_network_module
self.assertSecurityGroup(module, ['R-MEMBER', 'zope'], False) self.assertSecurityGroup(module, ['R-MEMBER', 'ERP5TypeTestCase'], False)
self.assertRoles(module, 'R-MEMBER', ['Author', 'Auditor']) self.assertRoles(module, 'R-MEMBER', ['Author', 'Auditor'])
self.assertRoles(module, 'zope', ['Owner']) self.assertRoles(module, 'zope', ['Owner'])
......
...@@ -68,7 +68,6 @@ ...@@ -68,7 +68,6 @@
<key> <string>portal_type_filter</string> </key> <key> <string>portal_type_filter</string> </key>
<value> <value>
<list> <list>
<string>Purchase Packing List Line</string>
<string>Sale Order Line</string> <string>Sale Order Line</string>
<string>Sale Packing List Line</string> <string>Sale Packing List Line</string>
</list> </list>
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <value>
<list> <list>
<string>PurchasePackingList_reindexAggregatedComputer</string> <string>Base_updateAllLocalRoles</string>
</list> </list>
</value> </value>
</item> </item>
...@@ -50,38 +50,39 @@ ...@@ -50,38 +50,39 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>PurchasePackingList_stop_deliver</string> </value> <value> <string>SoftwareInstallation_setAggregateList</string> </value>
</item> </item>
<item> <item>
<key> <string>method_id</string> </key> <key> <string>method_id</string> </key>
<value> <value>
<list> <list>
<string>stop</string> <string>_setAggregate.*</string>
<string>deliver</string>
</list> </list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>once_per_transaction</string> </key> <key> <string>once_per_transaction</string> </key>
<value> <int>1</int> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>portal_type_filter</string> </key> <key> <string>portal_type_filter</string> </key>
<value> <value>
<list> <list>
<string>Purchase Packing List</string> <string>Software Installation</string>
</list> </list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>script_name</string> </key> <key> <string>script_name</string> </key>
<value> <value>
<tuple/> <list>
<string>Base_updateAllLocalRoles</string>
</list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>temporary_document_disallowed</string> </key> <key> <string>temporary_document_disallowed</string> </key>
<value> <int>1</int> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
......
469 473
\ No newline at end of file \ No newline at end of file
...@@ -74,6 +74,7 @@ service_module/computer_registration ...@@ -74,6 +74,7 @@ service_module/computer_registration
service_module/vifib_discount service_module/vifib_discount
service_module/vifib_registration service_module/vifib_registration
service_module/vifib_tax service_module/vifib_tax
software_installation_module
software_instance_module software_instance_module
software_product_module software_product_module
software_product_module/test_software_product software_product_module/test_software_product
......
...@@ -84,3 +84,4 @@ system_event_module ...@@ -84,3 +84,4 @@ system_event_module
tax_module tax_module
transformation_module transformation_module
web_page_module web_page_module
software_installation_module
\ No newline at end of file
...@@ -88,6 +88,8 @@ Service Module ...@@ -88,6 +88,8 @@ Service Module
Short Message Short Message
Site Message Site Message
Slave Instance Slave Instance
Software Installation
Software Installation Module
Software Instance Software Instance
Software Instance Module Software Instance Module
Software Product Software Product
......
...@@ -88,6 +88,8 @@ Service Module ...@@ -88,6 +88,8 @@ Service Module
Short Message Short Message
Site Message Site Message
Slave Instance Slave Instance
Software Installation
Software Installation Module
Software Instance Software Instance
Software Instance Module Software Instance Module
Software Product Software Product
......
...@@ -17,4 +17,5 @@ Sale Packing List | local_permission_vifib_interaction_workflow ...@@ -17,4 +17,5 @@ Sale Packing List | local_permission_vifib_interaction_workflow
Sale Trade Condition Module | init_vifib_interaction_workflow Sale Trade Condition Module | init_vifib_interaction_workflow
Sale Trade Condition | local_permission_vifib_interaction_workflow Sale Trade Condition | local_permission_vifib_interaction_workflow
Slave Instance | local_permission_vifib_interaction_workflow Slave Instance | local_permission_vifib_interaction_workflow
Software Installation | local_permission_vifib_interaction_workflow
Software Instance | local_permission_vifib_interaction_workflow Software Instance | local_permission_vifib_interaction_workflow
\ No newline at end of file
<catalog_method>
<item key="sql_clear_catalog" type="int">
<value>1</value>
</item>
</catalog_method>
<catalog_method>
<item key="sql_uncatalog_object" type="int">
<value>1</value>
</item>
<item key="_is_filtered_archive" type="int">
<value>1</value>
</item>
<item key="_filter_expression_archive" type="str">
<value>python: context.getPortalType() == 'Purchase Packing List Line' and context.getResource() == context.getPortalObject().portal_preferences.getPreferredSoftwareSetupResource()</value>
</item>
<item key="_filter_expression_cache_key_archive" type="tuple">
<value>potral_type</value>
</item>
</catalog_method>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<value>1</value> <value>1</value>
</item> </item>
<item key="_filter_expression_archive" type="str"> <item key="_filter_expression_archive" type="str">
<value>python: context.getPortalType() in ('Email', 'Fax', 'Telephone', 'Software Release')</value> <value>python: context.getPortalType() in ('Email', 'Fax', 'Telephone', 'Software Release', 'Software Installation')</value>
</item> </item>
<item key="_filter_expression_cache_key_archive" type="tuple"> <item key="_filter_expression_cache_key_archive" type="tuple">
<value>portal_type</value> <value>portal_type</value>
......
...@@ -26,7 +26,7 @@ getPortalType</string> </value> ...@@ -26,7 +26,7 @@ getPortalType</string> </value>
<dtml-let email_list="[]">\n <dtml-let email_list="[]">\n
<dtml-in prefix="loop" expr="_.range(_.len(uid))">\n <dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
<dtml-if expr="getPortalType[loop_item] in [\'Email\', \'Software Release\']">\n <dtml-if expr="getPortalType[loop_item] in [\'Email\', \'Software Release\', \'Software Installation\']">\n
<dtml-call expr="email_list.append(loop_item)">\n <dtml-call expr="email_list.append(loop_item)">\n
</dtml-if>\n </dtml-if>\n
</dtml-in>\n </dtml-in>\n
......
<catalog_method>
<item key="sql_catalog_object_list" type="int">
<value>1</value>
</item>
<item key="_is_filtered_archive" type="int">
<value>1</value>
</item>
<item key="_filter_expression_archive" type="str">
<value>python: context.getPortalType() == 'Purchase Packing List Line' and context.getResource() == context.getPortalObject().portal_preferences.getPreferredSoftwareSetupResource()</value>
</item>
<item key="_filter_expression_cache_key_archive" type="tuple">
<value>portal_type</value>
</item>
</catalog_method>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="SQL" module="Products.ZSQLMethods.SQL"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>allow_simple_one_argument_traversal</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>arguments_src</string> </key>
<value> <string>uid\r\n
PurchasePackingListLine_getPublicComputerUid\r\n
PurchasePackingListLine_getSoftwareReleaseUrlString\r\n
PurchasePackingListLine_getSoftwareReleaseUid\r\n
getSimulationState</string> </value>
</item>
<item>
<key> <string>cache_time_</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>class_file_</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>class_name_</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>connection_hook</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>connection_id</string> </key>
<value> <string>erp5_sql_connection</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>z_catalog_software_release_list</string> </value>
</item>
<item>
<key> <string>max_cache_</string> </key>
<value> <int>100</int> </value>
</item>
<item>
<key> <string>max_rows_</string> </key>
<value> <int>1000</int> </value>
</item>
<item>
<key> <string>src</string> </key>
<value> <string encoding="cdata"><![CDATA[
DELETE FROM\n
software_release\n
WHERE\n
<dtml-in uid>\n
delivery_line_uid=<dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
</dtml-in>\n
;\n
\n
<dtml-var "\'\\0\'">\n
\n
<dtml-let row_list="[]">\n
<dtml-in prefix="loop" expr="_.range(_.len(uid))">\n
<dtml-if "PurchasePackingListLine_getPublicComputerUid[loop_item]">\n
<dtml-call expr="row_list.append(loop_item)">\n
</dtml-if>\n
</dtml-in>\n
\n
<dtml-if "row_list">\n
INSERT INTO\n
software_release (delivery_line_uid, computer_uid, uid, url, state)\n
VALUES\n
<dtml-in prefix="row" expr="row_list">\n
(\n
<dtml-sqlvar expr="uid[row_item]" type="int">,\n
<dtml-sqlvar expr="PurchasePackingListLine_getPublicComputerUid[row_item]" type="int">,\n
<dtml-sqlvar expr="PurchasePackingListLine_getSoftwareReleaseUid[row_item]" type="int">,\n
<dtml-sqlvar expr="PurchasePackingListLine_getSoftwareReleaseUrlString[row_item]" type="string">,\n
<dtml-sqlvar expr="getSimulationState[row_item]" type="string">\n
)\n
<dtml-if sequence-end><dtml-else>,</dtml-if>\n
</dtml-in>\n
</dtml-if>\n
</dtml-let>\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<catalog_method>
<item key="sql_clear_catalog" type="int">
<value>1</value>
</item>
</catalog_method>
<key_list> <key_list>
<key>computer_partition</key> <key>computer_partition</key>
<key>software_instance_tree</key> <key>software_instance_tree</key>
<key>software_release</key>
</key_list> </key_list>
\ No newline at end of file
40 43
\ No newline at end of file \ No newline at end of file
erp5_mysql_innodb/z0_drop_computer_partition erp5_mysql_innodb/z0_drop_computer_partition
erp5_mysql_innodb/z0_drop_software_instance_tree erp5_mysql_innodb/z0_drop_software_instance_tree
erp5_mysql_innodb/z0_drop_software_release
erp5_mysql_innodb/z0_uncatalog_computer_partition erp5_mysql_innodb/z0_uncatalog_computer_partition
erp5_mysql_innodb/z0_uncatalog_software_instance erp5_mysql_innodb/z0_uncatalog_software_instance
erp5_mysql_innodb/z0_uncatalog_software_release
erp5_mysql_innodb/z_catalog_computer_partition_list erp5_mysql_innodb/z_catalog_computer_partition_list
erp5_mysql_innodb/z_catalog_email_list erp5_mysql_innodb/z_catalog_email_list
erp5_mysql_innodb/z_catalog_no_workflow_date_object_list erp5_mysql_innodb/z_catalog_no_workflow_date_object_list
erp5_mysql_innodb/z_catalog_object_list erp5_mysql_innodb/z_catalog_object_list
erp5_mysql_innodb/z_catalog_software_instance_list erp5_mysql_innodb/z_catalog_software_instance_list
erp5_mysql_innodb/z_catalog_software_release_list
erp5_mysql_innodb/z_create_computer_partition erp5_mysql_innodb/z_create_computer_partition
erp5_mysql_innodb/z_create_software_instance_tree erp5_mysql_innodb/z_create_software_instance_tree
erp5_mysql_innodb/z_create_software_release
erp5_mysql_innodb/z_create_versioning erp5_mysql_innodb/z_create_versioning
\ No newline at end of file
computer_partition computer_partition
software_instance_tree software_instance_tree
software_release
\ No newline at end of file
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
<portal_type id="Slave Instance"> <portal_type id="Slave Instance">
<item>HostingSubscription</item> <item>HostingSubscription</item>
</portal_type> </portal_type>
<portal_type id="Software Installation">
<item>Url</item>
</portal_type>
<portal_type id="Software Instance"> <portal_type id="Software Instance">
<item>HostingSubscription</item> <item>HostingSubscription</item>
</portal_type> </portal_type>
......
180 181
\ No newline at end of file \ No newline at end of file
Hosting Subscription | HostingSubscription Hosting Subscription | HostingSubscription
Hosting Subscription | SoftwareInstance Hosting Subscription | SoftwareInstance
Slave Instance | HostingSubscription Slave Instance | HostingSubscription
Software Installation | Url
Software Instance | HostingSubscription Software Instance | HostingSubscription
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
</chain> </chain>
<chain> <chain>
<type>Computer</type> <type>Computer</type>
<workflow>computer_slap_interface_workflow, slap_interaction_workflow</workflow> <workflow>computer_slap_interface_workflow</workflow>
</chain> </chain>
<chain> <chain>
<type>Computer Partition</type> <type>Computer Partition</type>
......
<?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>_body</string> </key>
<value> <string>from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
\n
packing_list_line = context.Computer_getSoftwareCleanupPackingListLine(state_change)\n
portal = packing_list_line.getPortalObject()\n
packing_list = packing_list_line.getParentValue()\n
if packing_list.getPortalObject().portal_workflow.isTransitionPossible(packing_list, \'start\'):\n
packing_list.start()\n
if packing_list.getPortalObject().portal_workflow.isTransitionPossible(packing_list, \'stop\'):\n
packing_list.stop()\n
if packing_list.getPortalObject().portal_workflow.isTransitionPossible(packing_list, \'deliver\'):\n
packing_list.deliver()\n
\n
# cleanup all other deliveries\n
computer = state_change[\'object\']\n
# Get required arguments\n
kwargs = state_change.kwargs\n
software_release_url = state_change.kwargs["software_release_url"]\n
\n
portal = computer.getPortalObject()\n
\n
# Only get one software release\n
software_release_document_result = computer.portal_catalog(\n
portal_type=\'Software Release\', # validation_state=(\'shared\', \'released\', \'published\', \'shared_alive\', \'released_alive\', \'published_alive\'),\n
url_string=software_release_url, limit=2)\n
if len(software_release_document_result) != 1:\n
raise ValueError("No software release found for %s %s" % (computer.getRelativeUrl(), software_release_url))\n
else:\n
software_release_document = software_release_document_result[0]\n
\n
portal.portal_catalog.searchAndActivate(\n
method_id=\'PurchasePackingListLine_deliverIfPossible\',\n
simulation_state=portal.getPortalReservedInventoryStateList() + portal.getPortalTransitInventoryStateList() + (\'stopped\',),\n
default_service_uid=[portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareCleanupResource()).getUid(), portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareSetupResource()).getUid()],\n
aggregate_relative_url=ComplexQuery(\n
Query(aggregate_relative_url=software_release_document.getRelativeUrl()),\n
Query(aggregate_relative_url=computer.getRelativeUrl()),\n
operator="AND"),\n
\n
)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_cleanupSoftwareReleaseInstallation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
\n
portal = context.getPortalObject()\n
packing_list_line_list = context.Computer_getSoftwarePackingListLineList(\n
state_change,\n
service_uid_list=[portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareCleanupResource()).getUid()],\n
limit=1)\n
if len(packing_list_line_list) == 0:\n
raise ValueError("No purchase packing list line found for %s %s" % (state_change[\'object\'].getRelativeUrl(), state_change.kwargs["software_release_url"]))\n
else:\n
return packing_list_line_list[0].getObject()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_getSoftwareCleanupPackingListLine</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
\n
computer = state_change[\'object\']\n
# Get required arguments\n
kwargs = state_change.kwargs\n
software_release_url = state_change.kwargs["software_release_url"]\n
\n
portal = computer.getPortalObject()\n
\n
# Only get one software release\n
software_release_document_result = computer.portal_catalog(\n
portal_type=\'Software Release\', # validation_state=(\'shared\', \'released\', \'published\', \'shared_alive\', \'released_alive\', \'published_alive\'),\n
url_string=software_release_url, limit=2)\n
if len(software_release_document_result) != 1:\n
raise ValueError("No software release found for %s %s" % (computer.getRelativeUrl(), software_release_url))\n
else:\n
software_release_document = software_release_document_result[0]\n
\n
# Packing List valid state\n
if state_list is None:\n
state_list = []\n
state_list.extend(portal.getPortalReservedInventoryStateList())\n
state_list.extend(portal.getPortalTransitInventoryStateList())\n
\n
return portal.portal_catalog(\n
portal_type=\'Purchase Packing List Line\',\n
simulation_state=state_list,\n
default_resource_uid=service_uid_list,\n
sort_on=((\'movement.start_date\', \'DESC\'),),\n
aggregate_relative_url=ComplexQuery(\n
Query(aggregate_relative_url=software_release_document.getRelativeUrl()),\n
Query(aggregate_relative_url=computer.getRelativeUrl()),\n
operator="AND"),\n
limit=limit\n
)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change, service_uid_list, state_list=None, limit=1</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_getSoftwarePackingListLineList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
\n
portal = context.getPortalObject()\n
packing_list_line_list = context.Computer_getSoftwarePackingListLineList(\n
state_change,\n
service_uid_list=[portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareSetupResource()).getUid()],\n
limit=1)\n
if len(packing_list_line_list) == 0:\n
raise ValueError("No purchase packing list line found for %s %s" % (state_change[\'object\'].getRelativeUrl(), state_change.kwargs["software_release_url"]))\n
else:\n
return packing_list_line_list[0].getObject()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_getSoftwareSetupPackingListLine</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -52,88 +52,83 @@ ...@@ -52,88 +52,83 @@
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[ <value> <string encoding="cdata"><![CDATA[
from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
computer = state_change[\'object\']\n computer = state_change[\'object\']\n
portal = computer.getPortalObject()\n
# Get required arguments\n # Get required arguments\n
kwargs = state_change.kwargs\n kwargs = state_change.kwargs\n
software_release_url = state_change.kwargs["software_release_url"]\n
\n
portal = computer.getPortalObject()\n
\n \n
# Required args\n
# Raise TypeError if all parameters are not provided\n
try:\n
software_release_url = kwargs[\'software_release_url\']\n
state = kwargs["state"]\n
except KeyError:\n
raise TypeError("Computer_requestSoftwareReleaseChange takes exactly 2 arguments")\n
\n \n
# Only get one software release\n tag = "%s_%s_inProgress" % (computer.getUid(), \n
software_release_document_result = portal.portal_catalog(\n software_release_url)\n
portal_type=\'Software Release\', # validation_state=(\'shared\', \'released\', \'published\', \'shared_alive\', \'released_alive\', \'published_alive\'),\n
url_string=software_release_url, limit=2)\n
if len(software_release_document_result) != 1:\n
raise ValueError("No software release found for %s %s" % (computer.getRelativeUrl(), software_release_url))\n
else:\n
software_release_document = software_release_document_result[0]\n
\n \n
tag = \'Computer_%s_software_release_%s_change\' % (computer.getUid(), software_release_document.getUid())\n if (portal.portal_activities.countMessageWithTag(tag) > 0):\n
if portal.portal_activities.countMessageWithTag(tag) > 0:\n # The software instance is already under creation but can not be fetched from catalog\n
raise NotImplementedError(\'In progress\')\n # As it is not possible to fetch informations, it is better to raise an error\n
activate_kw = {\'tag\': tag}\n raise NotImplementedError(tag)\n
\n \n
state_list = []\n software_installation_portal_type = \'Software Installation\'\n
state_list.extend(portal.getPortalReservedInventoryStateList())\n # Check if it already exists\n
state_list.extend(portal.getPortalTransitInventoryStateList())\n software_installation_list = portal.portal_catalog(\n
state_list.extend([\'stopped\', \'delivered\'])\n portal_type=software_installation_portal_type,\n
url_string={\'query\': software_release_url, \'key\': \'ExactMatch\'},\n
validation_state="validated",\n
default_aggregate_uid=computer.getUid(),\n
limit=2,\n
)\n
\n \n
current_delivery_line = portal.portal_catalog.getResultValue(\n if len(software_installation_list) > 1:\n
portal_type=\'Purchase Packing List Line\',\n raise NotImplementedError("Too many Software Installation %s found %s" % (software_release_url, [x.path for x in software_installation_list]))\n
simulation_state=state_list,\n elif len(software_installation_list) == 1:\n
default_resource_uid=[\n software_installation = software_installation_list[0].getObject()\n
portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareCleanupResource()).getUid(),\n if (software_installation.getSlapState() == "destroy_requested") or \\\n
portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareSetupResource()).getUid(),\n (software_installation.getUrlString() != software_release_url) or \\\n
],\n (software_installation.getValidationState() != "validated") or \\\n
sort_on=((\'movement.start_date\', \'DESC\'),),\n (software_installation.getAggregate() != computer.getRelativeUrl()):\n
aggregate_relative_url=ComplexQuery(\n raise NotImplementedError("The system was not able to get the expected Software Installation")\n
Query(aggregate_relative_url=software_release_document.getRelativeUrl()),\n else:\n
Query(aggregate_relative_url=computer.getRelativeUrl()),\n if (state == "destroyed"):\n
operator="AND"),\n # No need to create destroyed subscription.\n
limit=1\n
)\n
\n
if current_delivery_line is not None and current_delivery_line.getResourceUid() == service_uid and current_delivery_line.getSimulationState() not in [\'stopped\', \'delivered\']:\n
# change installation in progress\n
return\n return\n
software_installation_reference = "SOFTINSTALL-%s" % context.getPortalObject().portal_ids\\\n
.generateNewId(id_group=\'slap_software_installation_reference\', id_generator=\'uid\')\n
software_installation = portal.getDefaultModule(portal_type=software_installation_portal_type).newContent(\n
portal_type=software_installation_portal_type,\n
reference=software_installation_reference,\n
url_string=software_release_url,\n
aggregate=computer.getRelativeUrl(),\n
activate_kw={\'tag\': tag},\n
)\n
\n \n
# XXX Hardcoded values\n # Change desired state\n
person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n if (state == "available"):\n
software_installation.requestStart()\n
elif (state == "destroyed"):\n
software_installation.requestDestroy()\n
else:\n
raise ValueError("state should be available or destroyed, but is %s" % state)\n
\n \n
packing_list_portal_type = "Purchase Packing List"\n # Change the state at the end to allow to execute updateLocalRoles only once in the transaction\n
module = portal.getDefaultModule(portal_type=packing_list_portal_type)\n validation_state = software_installation.getValidationState()\n
packing_list = module.newContent(\n slap_state = software_installation.getSlapState()\n
portal_type=packing_list_portal_type,\n if validation_state == \'draft\':\n
start_date=DateTime(),\n portal.portal_workflow.doActionFor(software_installation,\n
destination_value=person,\n \'validate_action\')\n
destination_section_value=person,\n
destination_decision_value=person,\n
source_administration_value=person,\n
# XXX Hardcoded values\n
source="organisation_module/vifib_internet",\n
source_section="organisation_module/vifib_internet",\n
price_currency="currency_module/EUR",\n
activate_kw=activate_kw\n
)\n
packing_list.newContent(\n
portal_type="Purchase Packing List Line",\n
resource_uid=service_uid,\n
aggregate_value_list=[software_release_document, computer],\n
quantity=1,\n
activate_kw=activate_kw\n
)\n
\n \n
packing_list.confirm(activate_kw=activate_kw)\n context.REQUEST.set(\'software_installation_url\', software_installation.getRelativeUrl())\n
packing_list.startBuilding()\n
]]></string> </value> ]]></string> </value>
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>state_change, service_uid</string> </value> <value> <string>state_change</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
......
<?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>_body</string> </key>
<value> <string>computer = state_change[\'object\']\n
portal = computer.getPortalObject()\n
# Software installation service\n
service_relative_url = portal.portal_preferences.\\\n
getPreferredSoftwareCleanupResource()\n
service = portal.restrictedTraverse(service_relative_url)\n
\n
context.Computer_requestSoftwareReleaseChange(state_change, service_uid=service.getUid())\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_requestSoftwareReleaseCleanup</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>computer = state_change[\'object\']\n
portal = computer.getPortalObject()\n
# Software installation service\n
service_relative_url = portal.portal_preferences.\\\n
getPreferredSoftwareSetupResource()\n
service = portal.restrictedTraverse(service_relative_url)\n
\n
context.Computer_requestSoftwareReleaseChange(state_change, service_uid=service.getUid())\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_requestSoftwareReleaseInstallation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>packing_list_line = context.Computer_getSoftwareSetupPackingListLine(state_change)\n
packing_list = packing_list_line.getParentValue()\n
if packing_list.getPortalObject().portal_workflow.isTransitionPossible(packing_list, \'start\'):\n
packing_list.start()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_startSoftwareReleaseInstallation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_body</string> </key>
<value> <string>packing_list_line = context.Computer_getSoftwareSetupPackingListLine(state_change)\n
packing_list = packing_list_line.getParentValue()\n
if packing_list.getPortalObject().portal_workflow.isTransitionPossible(packing_list, \'stop\'):\n
packing_list.stop()\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_stopSoftwareReleaseInstallation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -23,15 +23,10 @@ ...@@ -23,15 +23,10 @@
<value> <value>
<tuple> <tuple>
<string>approve_computer_registration</string> <string>approve_computer_registration</string>
<string>cleanup_software_release_installation</string>
<string>create_computer_registration</string> <string>create_computer_registration</string>
<string>report_computer_bang</string> <string>report_computer_bang</string>
<string>report_software_release_installation_error</string>
<string>request_computer_registration</string> <string>request_computer_registration</string>
<string>request_software_release_cleanup</string> <string>request_software_release</string>
<string>request_software_release_installation</string>
<string>start_software_release_installation</string>
<string>stop_software_release_installation</string>
</tuple> </tuple>
</value> </value>
</item> </item>
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</item> </item>
<item> <item>
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <string>Computer_requestSoftwareReleaseCleanup</string> </value> <value> <string>Computer_requestSoftwareReleaseChange</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>request_software_release_cleanup</string> </value> <value> <string>request_software_release</string> </value>
</item> </item>
<item> <item>
<key> <string>new_state_id</string> </key> <key> <string>new_state_id</string> </key>
......
807 813
\ No newline at end of file \ No newline at end of file
...@@ -2,7 +2,6 @@ Assignment | slap_interaction_workflow ...@@ -2,7 +2,6 @@ Assignment | slap_interaction_workflow
Computer Partition | computer_partition_slap_interface_workflow Computer Partition | computer_partition_slap_interface_workflow
Computer Partition | slap_interaction_workflow Computer Partition | slap_interaction_workflow
Computer | computer_slap_interface_workflow Computer | computer_slap_interface_workflow
Computer | slap_interaction_workflow
Hosting Subscription | slap_interaction_workflow Hosting Subscription | slap_interaction_workflow
Internal Packing List | slap_interaction_workflow Internal Packing List | slap_interaction_workflow
Open Sale Order | slap_interaction_workflow Open Sale Order | slap_interaction_workflow
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
<portal_type id="Slave Instance"> <portal_type id="Slave Instance">
<item>causality</item> <item>causality</item>
</portal_type> </portal_type>
<portal_type id="Software Installation">
<item>causality</item>
</portal_type>
<portal_type id="Software Instance"> <portal_type id="Software Instance">
<item>causality</item> <item>causality</item>
</portal_type> </portal_type>
......
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
<type>Slave Instance</type> <type>Slave Instance</type>
<workflow>instance_accounting_slap_interaction_workflow</workflow> <workflow>instance_accounting_slap_interaction_workflow</workflow>
</chain> </chain>
<chain>
<type>Software Installation</type>
<workflow>installation_accounting_slap_interaction_workflow</workflow>
</chain>
<chain> <chain>
<type>Software Instance</type> <type>Software Instance</type>
<workflow>instance_accounting_slap_interaction_workflow</workflow> <workflow>instance_accounting_slap_interaction_workflow</workflow>
......
...@@ -2,67 +2,43 @@ ...@@ -2,67 +2,43 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="SQL" module="Products.ZSQLMethods.SQL"/> <global name="InteractionWorkflowDefinition" module="Products.ERP5.InteractionWorkflow"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item> <item>
<key> <string>_col</string> </key> <key> <string>_objects</string> </key>
<value> <value>
<tuple/> <tuple/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>allow_simple_one_argument_traversal</string> </key> <key> <string>creation_guard</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>arguments_src</string> </key> <key> <string>description</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>cache_time_</string> </key> <key> <string>groups</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>class_file_</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>class_name_</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>connection_hook</string> </key>
<value> <value>
<none/> <tuple/>
</value> </value>
</item> </item>
<item>
<key> <string>connection_id</string> </key>
<value> <string>erp5_sql_connection</string> </value>
</item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>z0_drop_software_release</string> </value> <value> <string>installation_accounting_slap_interaction_workflow</string> </value>
</item>
<item>
<key> <string>max_cache_</string> </key>
<value> <int>100</int> </value>
</item> </item>
<item> <item>
<key> <string>max_rows_</string> </key> <key> <string>manager_bypass</string> </key>
<value> <int>1000</int> </value> <value> <int>0</int> </value>
</item>
<item>
<key> <string>src</string> </key>
<value> <string>DROP TABLE IF EXISTS software_release</string> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string></string> </value> <value> <string>Accounting workflow for interaction with Software Installation changes</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Interaction" module="Products.ERP5.Interaction"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>interactions</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <value>
<list> <list>
<string>Computer_reindexRelatedPurchasePackingListLine</string> <string>Installation_changePromiseState</string>
</list> </list>
</value> </value>
</item> </item>
...@@ -50,25 +50,26 @@ ...@@ -50,25 +50,26 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>Computer_setAllocationScope</string> </value> <value> <string>change_installation_promise_state</string> </value>
</item> </item>
<item> <item>
<key> <string>method_id</string> </key> <key> <string>method_id</string> </key>
<value> <value>
<list> <list>
<string>_setAllocationScope.*</string> <string>requestStart</string>
<string>requestDestroy</string>
</list> </list>
</value> </value>
</item> </item>
<item> <item>
<key> <string>once_per_transaction</string> </key> <key> <string>once_per_transaction</string> </key>
<value> <int>1</int> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>portal_type_filter</string> </key> <key> <string>portal_type_filter</string> </key>
<value> <value>
<list> <list>
<string>Computer</string> <string>Software Installation</string>
</list> </list>
</value> </value>
</item> </item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Scripts" module="Products.DCWorkflow.Scripts"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>scripts</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -50,21 +50,54 @@ ...@@ -50,21 +50,54 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>sale_packing_list = state_change[\'object\']\n <value> <string>installation = state_change[\'object\']\n
portal = installation.getPortalObject()\n
isTransitionPossible = portal.portal_workflow.isTransitionPossible\n
\n \n
setup_service_relative_url = sale_packing_list.portal_preferences.getPreferredSoftwareSetupResource()\n # Get latest workflow transition\n
state = installation.getSlapState()\n
started = "start_requested"\n
destroyed = "destroy_requested"\n
assert state in [started, destroyed]\n
script.log(state)\n
# Get all needed services\n
setup_service_relative_url = portal.portal_preferences.getPreferredSoftwareSetupResource()\n
setup_service = portal.restrictedTraverse(setup_service_relative_url)\n
cleanup_service_relative_url = portal.portal_preferences.getPreferredSoftwareCleanupResource()\n
cleanup_service = portal.restrictedTraverse(cleanup_service_relative_url)\n
\n \n
for purchase_packing_list_line in sale_packing_list.contentValues(\n # Get current delivery\n
portal_type="Purchase Packing List Line"):\n delivery = installation.getCausalityValue(portal_type=["Purchase Packing List"])\n
if purchase_packing_list_line.getResource() == setup_service_relative_url:\n if delivery is None:\n
computer = purchase_packing_list_line.getAggregateValue(portal_type="Computer")\n delivery = context.Installation_createPurchasePackingList(state_change, setup_service_relative_url)\n
if computer is None:\n \n
raise ValueError("Purchase Packing List Line \'%s\' should have a computer aggregated" % purchase_packing_list_line.getRelativeUrl())\n delivery_line = delivery.contentValues(portal_type=["Purchase Packing List Line"])[0]\n
resource = delivery_line.getResource()\n
\n
if state == destroyed:\n
comment = \'Software Release request destruction.\'\n
if resource == setup_service_relative_url:\n
if isTransitionPossible(delivery, \'confirm\'):\n
delivery.confirm(comment=comment)\n
if isTransitionPossible(delivery, \'start\'):\n
delivery.start(comment=comment)\n
if isTransitionPossible(delivery, \'stop\'):\n
delivery.stop(comment=comment)\n
if isTransitionPossible(delivery, \'deliver\'):\n
delivery.deliver(comment=comment)\n
delivery = context.Installation_createPurchasePackingList(state_change, cleanup_service_relative_url)\n
if isTransitionPossible(delivery, \'confirm\'):\n
delivery.confirm(comment=comment)\n
elif state == started:\n
if resource == setup_service_relative_url:\n
if isTransitionPossible(delivery, \'confirm\'):\n
delivery.confirm(comment=comment)\n
else:\n else:\n
tag = "%s_reindex" % purchase_packing_list_line.getRelativeUrl()\n # nothing to do in case if cleanup was\n
# As software is installed, reindex the computer to mark the computer partition as installable\n pass\n
purchase_packing_list_line.reindexObject(activate_kw={\'tag\': tag})\n \n
computer.activate(after_tag=tag).recursiveReindexObject()\n if installation.getCausality(portal_type=\'Purchase Packing List\') != delivery.getRelativeUrl():\n
installation.setCausality(delivery.getRelativeUrl())\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
...@@ -73,7 +106,7 @@ for purchase_packing_list_line in sale_packing_list.contentValues(\n ...@@ -73,7 +106,7 @@ for purchase_packing_list_line in sale_packing_list.contentValues(\n
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>PurchasePackingList_reindexAggregatedComputer</string> </value> <value> <string>Installation_changePromiseState</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -50,43 +50,67 @@ ...@@ -50,43 +50,67 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>portal = context.getPortalObject()\n <value> <string encoding="cdata"><![CDATA[
\n
from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
installation = state_change[\'object\']\n
# Get required arguments\n
\n
software_release_document = installation.Base_getSoftwareReleaseDocument(installation.getUrlString())\n
if software_release_document is None:\n
raise NotImplemnetedError(\'Software Release %r not ready yet\' % instance.getUrlString())\n
\n
\n
portal = installation.getPortalObject()\n
computer = installation.getAggregateValue(portal_type=\'Computer\')\n
\n \n
software_release_document = portal.portal_catalog.getResultValue(portal_type=\'Software Release\', url_string=software_release_url)\n
\n \n
software_setup_resource = portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareSetupResource())\n tag = \'SoftwareInstallation_%s_software_release_%s_change\' % (installation.getUid(), software_release_document.getUid())\n
software_cleanup_resource = portal.restrictedTraverse(portal.portal_preferences.getPreferredSoftwareCleanupResource())\n if portal.portal_activities.countMessageWithTag(tag) > 0:\n
raise NotImplementedError(\'In progress\')\n
activate_kw = {\'tag\': tag}\n
\n \n
current_delivery_line = portal.portal_catalog.getResultValue(\n # XXX Hardcoded values\n
default_resource_uid=[\n person = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
software_setup_resource.getUid(),\n \n
software_cleanup_resource.getUid(),\n packing_list_portal_type = "Purchase Packing List"\n
],\n module = portal.getDefaultModule(portal_type=packing_list_portal_type)\n
default_aggregate_uid=ComplexQuery(\n packing_list = module.newContent(\n
Query(default_aggregate_uid=software_release_document.getUid()),\n portal_type=packing_list_portal_type,\n
Query(default_aggregate_uid=context.getUid()),\n start_date=DateTime(),\n
operator="AND",\n destination_value=person,\n
),\n destination_section_value=person,\n
portal_type=\'Purchase Packing List Line\',\n destination_decision_value=person,\n
sort_on=((\'movement.start_date\', \'DESC\'),),\n source_administration_value=person,\n
limit=1\n # XXX Hardcoded values\n
source="organisation_module/vifib_internet",\n
source_section="organisation_module/vifib_internet",\n
price_currency="currency_module/EUR",\n
activate_kw=activate_kw\n
)\n
packing_list.newContent(\n
portal_type="Purchase Packing List Line",\n
resource=service,\n
aggregate_value_list=[software_release_document, computer, installation],\n
quantity=1,\n
activate_kw=activate_kw\n
)\n )\n
\n \n
if current_delivery_line.getResource() == software_cleanup_resource.getRelativeUrl():\n packing_list.confirm(activate_kw=activate_kw)\n
return \'destroyed\'\n packing_list.startBuilding()\n
else:\n \n
return \'available\'\n return packing_list\n
</string> </value>
]]></string> </value>
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>software_release_url</string> </value> <value> <string>state_change, service</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>Computer_getSoftwareReleaseRequestedState</string> </value> <value> <string>Installation_createPurchasePackingList</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Variables" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>variables</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Worklists" module="Products.DCWorkflow.Worklists"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>worklists</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
29 30
\ No newline at end of file \ No newline at end of file
Slave Instance | causality Slave Instance | causality
Software Installation | causality
Software Instance | causality Software Instance | causality
\ No newline at end of file
Slave Instance | instance_accounting_slap_interaction_workflow Slave Instance | instance_accounting_slap_interaction_workflow
Software Installation | installation_accounting_slap_interaction_workflow
Software Instance | instance_accounting_slap_interaction_workflow Software Instance | instance_accounting_slap_interaction_workflow
\ No newline at end of file
installation_accounting_slap_interaction_workflow
instance_accounting_slap_interaction_workflow instance_accounting_slap_interaction_workflow
\ No newline at end of file
<module>
<id>software_installation_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>Software Installation Module</portal_type>
<title>Software Installations</title>
</module>
\ No newline at end of file
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
<portal_type id="Hosting Subscription Module"> <portal_type id="Hosting Subscription Module">
<item>Hosting Subscription</item> <item>Hosting Subscription</item>
</portal_type> </portal_type>
<portal_type id="Software Installation Module">
<item>Software Installation</item>
</portal_type>
<portal_type id="Software Instance Module"> <portal_type id="Software Instance Module">
<item>Slave Instance</item> <item>Slave Instance</item>
<item>Software Instance</item> <item>Software Instance</item>
......
...@@ -6,6 +6,12 @@ ...@@ -6,6 +6,12 @@
<item>aggregate</item> <item>aggregate</item>
<item>specialise</item> <item>specialise</item>
</portal_type> </portal_type>
<portal_type id="Software Installation">
<item>aggregate</item>
</portal_type>
<portal_type id="Software Installation Module">
<item>business_application</item>
</portal_type>
<portal_type id="Software Instance"> <portal_type id="Software Instance">
<item>aggregate</item> <item>aggregate</item>
<item>specialise</item> <item>specialise</item>
......
<?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>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>Software Installation Module</string> </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>
</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>
...@@ -2,75 +2,80 @@ ...@@ -2,75 +2,80 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="SQL" module="Products.ZSQLMethods.SQL"/> <global name="Base Type" module="erp5.portal_type"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item> <item>
<key> <string>_col</string> </key> <key> <string>content_icon</string> </key>
<value> <value>
<tuple/> <none/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>allow_simple_one_argument_traversal</string> </key> <key> <string>description</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>arguments_src</string> </key> <key> <string>factory</string> </key>
<value> <string></string> </value> <value> <string>addXMLObject</string> </value>
</item> </item>
<item> <item>
<key> <string>cache_time_</string> </key> <key> <string>group_list</string> </key>
<value> <int>0</int> </value> <value>
<tuple>
<string>item</string>
</tuple>
</value>
</item> </item>
<item> <item>
<key> <string>class_file_</string> </key> <key> <string>id</string> </key>
<value> <string></string> </value> <value> <string>Software Installation</string> </value>
</item> </item>
<item> <item>
<key> <string>class_name_</string> </key> <key> <string>init_script</string> </key>
<value> <string></string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>connection_hook</string> </key> <key> <string>permission</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>connection_id</string> </key> <key> <string>portal_type</string> </key>
<value> <string>erp5_sql_connection</string> </value> <value> <string>Base Type</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>searchable_text_property_id</string> </key>
<value> <string>z_create_software_release</string> </value> <value>
</item> <tuple>
<item> <string>title</string>
<key> <string>max_cache_</string> </key> <string>description</string>
<value> <int>100</int> </value> <string>reference</string>
<string>short_title</string>
</tuple>
</value>
</item> </item>
<item> <item>
<key> <string>max_rows_</string> </key> <key> <string>type_class</string> </key>
<value> <int>1000</int> </value> <value> <string>Item</string> </value>
</item> </item>
<item> <item>
<key> <string>src</string> </key> <key> <string>type_interface</string> </key>
<value> <string>CREATE TABLE `software_release` (\n <value>
`uid` BIGINT UNSIGNED NOT NULL,\n <tuple/>
`computer_uid` BIGINT UNSIGNED NOT NULL,\n </value>
`delivery_line_uid` BIGINT UNSIGNED NOT NULL,\n
`url` varchar(255),\n
`state` varchar(255),\n
PRIMARY KEY (`uid`, `delivery_line_uid`)\n
) ENGINE=InnoDB;\n
</string> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>type_mixin</string> </key>
<value> <string></string> </value> <value>
<tuple/>
</value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
<type>Slave Instance</type> <type>Slave Instance</type>
<workflow>edit_workflow, instance_slap_interface_workflow, item_workflow</workflow> <workflow>edit_workflow, instance_slap_interface_workflow, item_workflow</workflow>
</chain> </chain>
<chain>
<type>Software Installation</type>
<workflow>edit_workflow, installation_slap_interface_workflow, item_workflow</workflow>
</chain>
<chain> <chain>
<type>Software Instance</type> <type>Software Instance</type>
<workflow>edit_workflow, instance_slap_interface_workflow, item_workflow</workflow> <workflow>edit_workflow, instance_slap_interface_workflow, item_workflow</workflow>
......
...@@ -2,55 +2,57 @@ ...@@ -2,55 +2,57 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> <global name="DCWorkflowDefinition" module="Products.DCWorkflow.DCWorkflow"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item> <item>
<key> <string>actbox_category</string> </key> <key> <string>_objects</string> </key>
<value> <string>workflow</string> </value> <value>
</item> <tuple/>
<item> </value>
<key> <string>actbox_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>after_script_name</string> </key> <key> <string>creation_guard</string> </key>
<value> <string>Computer_stopSoftwareReleaseInstallation</string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>guard</string> </key> <key> <string>groups</string> </key>
<value> <value>
<none/> <tuple/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>stop_software_release_installation</string> </value> <value> <string>installation_slap_interface_workflow</string> </value>
</item> </item>
<item> <item>
<key> <string>new_state_id</string> </key> <key> <string>initial_state</string> </key>
<value> <string></string> </value> <value> <string>draft</string> </value>
</item> </item>
<item> <item>
<key> <string>script_name</string> </key> <key> <string>manager_bypass</string> </key>
<value> <string></string> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>permissions</string> </key>
<value> <string>Stop Software Release Installation</string> </value> <value>
<tuple/>
</value>
</item> </item>
<item> <item>
<key> <string>trigger_type</string> </key> <key> <string>state_var</string> </key>
<value> <int>2</int> </value> <value> <string>slap_state</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Installation Slap Interface Workflow</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Scripts" module="Products.DCWorkflow.Scripts"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>scripts</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="States" module="Products.DCWorkflow.States"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>states</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="StateDefinition" module="Products.DCWorkflow.States"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destroy_requested</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Destroy Requested</string> </value>
</item>
<item>
<key> <string>transitions</string> </key>
<value>
<tuple>
<string>report_error</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_list</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="StateDefinition" module="Products.DCWorkflow.States"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>draft</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Draft</string> </value>
</item>
<item>
<key> <string>transitions</string> </key>
<value>
<tuple>
<string>report_error</string>
<string>request_destroy</string>
<string>request_start</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_list</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="StateDefinition" module="Products.DCWorkflow.States"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>start_requested</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Start Requested</string> </value>
</item>
<item>
<key> <string>transitions</string> </key>
<value>
<tuple>
<string>report_error</string>
<string>request_destroy</string>
<string>request_start</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_list</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Transitions" module="Products.DCWorkflow.Transitions"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>transitions</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</item> </item>
<item> <item>
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <string>Computer_requestSoftwareReleaseInstallation</string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>request_software_release_installation</string> </value> <value> <string>report_error</string> </value>
</item> </item>
<item> <item>
<key> <string>new_state_id</string> </key> <key> <string>new_state_id</string> </key>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string></string> </value> <value> <string>Report Error</string> </value>
</item> </item>
<item> <item>
<key> <string>trigger_type</string> </key> <key> <string>trigger_type</string> </key>
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
<key> <string>actbox_category</string> </key> <key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value> <value> <string>workflow</string> </value>
</item> </item>
<item>
<key> <string>actbox_icon</string> </key>
<value> <string></string> </value>
</item>
<item> <item>
<key> <string>actbox_name</string> </key> <key> <string>actbox_name</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
...@@ -34,11 +38,11 @@ ...@@ -34,11 +38,11 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>report_software_release_installation_error</string> </value> <value> <string>request_destroy</string> </value>
</item> </item>
<item> <item>
<key> <string>new_state_id</string> </key> <key> <string>new_state_id</string> </key>
<value> <string></string> </value> <value> <string>destroy_requested</string> </value>
</item> </item>
<item> <item>
<key> <string>script_name</string> </key> <key> <string>script_name</string> </key>
...@@ -46,12 +50,33 @@ ...@@ -46,12 +50,33 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Report Software Release Installation Error</string> </value> <value> <string>Request Destruction</string> </value>
</item> </item>
<item> <item>
<key> <string>trigger_type</string> </key> <key> <string>trigger_type</string> </key>
<value> <int>2</int> </value> <value> <int>2</int> </value>
</item> </item>
<item>
<key> <string>var_exprs</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</item> </item>
<item> <item>
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <string>Computer_cleanupSoftwareReleaseInstallation</string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
...@@ -38,11 +38,11 @@ ...@@ -38,11 +38,11 @@
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>cleanup_software_release_installation</string> </value> <value> <string>request_start</string> </value>
</item> </item>
<item> <item>
<key> <string>new_state_id</string> </key> <key> <string>new_state_id</string> </key>
<value> <string></string> </value> <value> <string>start_requested</string> </value>
</item> </item>
<item> <item>
<key> <string>script_name</string> </key> <key> <string>script_name</string> </key>
...@@ -50,12 +50,33 @@ ...@@ -50,12 +50,33 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string></string> </value> <value> <string>Request Start</string> </value>
</item> </item>
<item> <item>
<key> <string>trigger_type</string> </key> <key> <string>trigger_type</string> </key>
<value> <int>2</int> </value> <value> <int>2</int> </value>
</item> </item>
<item>
<key> <string>var_exprs</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Variables" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_mapping</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>variables</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_expr</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_value</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The last transition</string> </value>
</item>
<item>
<key> <string>for_catalog</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>for_status</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>action</string> </value>
</item>
<item>
<key> <string>info_guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>update_always</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>transition/getId|nothing</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_expr</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_value</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The name of the user who performed the last transition</string> </value>
</item>
<item>
<key> <string>for_catalog</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>for_status</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>actor</string> </value>
</item>
<item>
<key> <string>info_guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>update_always</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>user/getUserName</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_expr</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_value</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Comments about the last transition</string> </value>
</item>
<item>
<key> <string>for_catalog</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>for_status</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>comment</string> </value>
</item>
<item>
<key> <string>info_guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>update_always</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>python:state_change.kwargs.get(\'comment\', \'\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -2,66 +2,45 @@ ...@@ -2,66 +2,45 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="SQL" module="Products.ZSQLMethods.SQL"/> <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item> <item>
<key> <string>allow_simple_one_argument_traversal</string> </key> <key> <string>default_expr</string> </key>
<value> <value>
<none/> <none/>
</value> </value>
</item> </item>
<item> <item>
<key> <string>arguments_src</string> </key> <key> <string>default_value</string> </key>
<value> <string>uid</string> </value>
</item>
<item>
<key> <string>cache_time_</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>class_file_</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>class_name_</string> </key> <key> <string>description</string> </key>
<value> <string></string> </value> <value> <string>Error message if validation failed</string> </value>
</item> </item>
<item> <item>
<key> <string>connection_hook</string> </key> <key> <string>for_catalog</string> </key>
<value> <value> <int>0</int> </value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>connection_id</string> </key> <key> <string>for_status</string> </key>
<value> <string>erp5_sql_connection</string> </value> <value> <int>1</int> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>z0_uncatalog_software_release</string> </value> <value> <string>error_message</string> </value>
</item>
<item>
<key> <string>max_cache_</string> </key>
<value> <int>100</int> </value>
</item>
<item>
<key> <string>max_rows_</string> </key>
<value> <int>1000</int> </value>
</item> </item>
<item> <item>
<key> <string>src</string> </key> <key> <string>info_guard</string> </key>
<value> <string encoding="cdata"><![CDATA[ <value>
<none/>
DELETE FROM software_release WHERE delivery_line_uid=<dtml-sqlvar uid type=int>\n </value>
]]></string> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>update_always</string> </key>
<value> <string></string> </value> <value> <int>1</int> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -2,55 +2,58 @@ ...@@ -2,55 +2,58 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
<item> <item>
<key> <string>actbox_category</string> </key> <key> <string>default_expr</string> </key>
<value> <string>workflow</string> </value> <value>
</item> <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<item> </value>
<key> <string>actbox_name</string> </key>
<value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>actbox_url</string> </key> <key> <string>default_value</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string>Computer_startSoftwareReleaseInstallation</string> </value>
</item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
<value> <string></string> </value> <value> <string>Provides access to workflow history</string> </value>
</item> </item>
<item> <item>
<key> <string>guard</string> </key> <key> <string>for_catalog</string> </key>
<value> <value> <int>0</int> </value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>for_status</string> </key>
<value> <string>start_software_release_installation</string> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>new_state_id</string> </key> <key> <string>id</string> </key>
<value> <string></string> </value> <value> <string>history</string> </value>
</item> </item>
<item> <item>
<key> <string>script_name</string> </key> <key> <string>info_guard</string> </key>
<value> <string></string> </value> <value>
<none/>
</value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>update_always</string> </key>
<value> <string>Start Software Release Installation</string> </value> <value> <int>0</int> </value>
</item> </item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item> <item>
<key> <string>trigger_type</string> </key> <key> <string>text</string> </key>
<value> <int>2</int> </value> <value> <string>state_change/getHistory</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_expr</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_value</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>portal type (use as filter for worklists)</string> </value>
</item>
<item>
<key> <string>for_catalog</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>for_status</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>portal_type</string> </value>
</item>
<item>
<key> <string>info_guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>update_always</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="VariableDefinition" module="Products.DCWorkflow.Variables"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>default_expr</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_value</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Time of the last transition</string> </value>
</item>
<item>
<key> <string>for_catalog</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>for_status</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>time</string> </value>
</item>
<item>
<key> <string>info_guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>update_always</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>state_change/getDateTime</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment