Commit 85c7fe0c authored by Cédric de Saint Martin's avatar Cédric de Saint Martin

Merge branch 'master' into HEAD

parents 749c3820 bbfb0f19
Changes Changes
======= =======
0.25 (Unreleased) 0.26 (Unreleased)
-----------------
* No change yet.
0.25 (2012-05-16)
----------------- -----------------
* Fix support for no_bridge option in configuration files for some values: * Fix support for no_bridge option in configuration files for some values:
no_bridge = false was stated as true. [Cedric de Saint Martin] no_bridge = false was stated as true. [Cedric de Saint Martin]
* Delay a randomized period of time before calling slapgrid. [Yingjie Xu]
* slapformat: Don't require tunctl if no_bridge is set [Leonardo Rochael]
* slapformat: remove monkey patching when creating address so that it doesn't
return false positive. [Cedric de Saint Martin]
* Various: clearer error messages.
0.24 (2012-03-29) 0.24 (2012-03-29)
----------------- -----------------
......
This diff is collapsed.
...@@ -98,7 +98,6 @@ bt5_installation_list = (\n ...@@ -98,7 +98,6 @@ bt5_installation_list = (\n
\'vifib_core\',\n \'vifib_core\',\n
\'vifib_base\',\n \'vifib_base\',\n
\'vifib_slap\',\n \'vifib_slap\',\n
\'vifib_crm\',\n
\'vifib_forge_release\',\n \'vifib_forge_release\',\n
\'vifib_software_pdm\',\n \'vifib_software_pdm\',\n
\'vifib_web\',\n \'vifib_web\',\n
......
...@@ -77,7 +77,6 @@ class TestVifibConfiguratorWorkflow(TestLiveConfiguratorWorkflowMixin): ...@@ -77,7 +77,6 @@ class TestVifibConfiguratorWorkflow(TestLiveConfiguratorWorkflowMixin):
'vifib_core', 'vifib_core',
'vifib_base', 'vifib_base',
'vifib_slap', 'vifib_slap',
'vifib_crm',
'vifib_forge_release', 'vifib_forge_release',
'vifib_software_pdm', 'vifib_software_pdm',
'vifib_web', 'vifib_web',
......
<property_sheet_list> <property_sheet_list>
<portal_type id="Item">
<item>VariationRange</item>
</portal_type>
<portal_type id="Slave Instance"> <portal_type id="Slave Instance">
<item>Reference</item>
<item>SlaveInstanceConstraint</item> <item>SlaveInstanceConstraint</item>
<item>SoftwareInstance</item> <item>SoftwareInstance</item>
<item>TextDocument</item>
<item>VariationRange</item>
</portal_type> </portal_type>
<portal_type id="Software Instance"> <portal_type id="Software Instance">
<item>Reference</item>
<item>SoftwareInstance</item> <item>SoftwareInstance</item>
<item>SoftwareInstanceConstraint</item> <item>SoftwareInstanceConstraint</item>
<item>TextDocument</item>
<item>VariationRange</item>
</portal_type> </portal_type>
</property_sheet_list> </property_sheet_list>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="TALES 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>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>expression</string> </key>
<value> <string encoding="cdata"><![CDATA[
python: len(context.getPredecessorRelatedList()) <= 1
]]></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>predecessor_related_constraint</string> </value>
</item>
<item>
<key> <string>message_expression_false</string> </key>
<value> <string>There is more then one related predecessor</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>TALES Constraint</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/>
</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>
...@@ -6,6 +6,18 @@ ...@@ -6,6 +6,18 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <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> <item>
<key> <string>constraint_property</string> </key> <key> <string>constraint_property</string> </key>
<value> <value>
...@@ -22,6 +34,18 @@ ...@@ -22,6 +34,18 @@
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>property_existence_constraint</string> </value> <value> <string>property_existence_constraint</string> </value>
</item> </item>
<item>
<key> <string>int_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>message_no_such_property</string> </key> <key> <string>message_no_such_property</string> </key>
<value> <string>Source Reference must be set</string> </value> <value> <string>Source Reference must be set</string> </value>
...@@ -30,6 +54,52 @@ ...@@ -30,6 +54,52 @@
<key> <string>portal_type</string> </key> <key> <string>portal_type</string> </key>
<value> <string>Property Existence Constraint</string> </value> <value> <string>Property Existence Constraint</string> </value>
</item> </item>
<item>
<key> <string>string_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: here.getSlapState() != \'draft\'</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/>
</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> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -6,6 +6,18 @@ ...@@ -6,6 +6,18 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <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> <item>
<key> <string>constraint_property</string> </key> <key> <string>constraint_property</string> </key>
<value> <value>
...@@ -22,6 +34,18 @@ ...@@ -22,6 +34,18 @@
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>text_content_existence_constraint</string> </value> <value> <string>text_content_existence_constraint</string> </value>
</item> </item>
<item>
<key> <string>int_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>message_no_such_property</string> </key> <key> <string>message_no_such_property</string> </key>
<value> <string>XML must be set</string> </value> <value> <string>XML must be set</string> </value>
...@@ -30,6 +54,52 @@ ...@@ -30,6 +54,52 @@
<key> <string>portal_type</string> </key> <key> <string>portal_type</string> </key>
<value> <string>Property Existence Constraint</string> </value> <value> <string>Property Existence Constraint</string> </value>
</item> </item>
<item>
<key> <string>string_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: here.getSlapState() != \'draft\'</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/>
</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> </dictionary>
</pickle> </pickle>
</record> </record>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Category Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>predecessor_category</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="TALES 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>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>expression</string> </key>
<value> <string encoding="cdata"><![CDATA[
python: len(context.getPredecessorRelatedList()) <= 1
]]></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>predecessor_related_constraint</string> </value>
</item>
<item>
<key> <string>message_expression_false</string> </key>
<value> <string>There is more then one related predecessor</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>TALES Constraint</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/>
</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>
...@@ -6,6 +6,18 @@ ...@@ -6,6 +6,18 @@
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <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> <item>
<key> <string>constraint_property</string> </key> <key> <string>constraint_property</string> </key>
<value> <value>
...@@ -22,6 +34,18 @@ ...@@ -22,6 +34,18 @@
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>property_existence_constraint</string> </value> <value> <string>property_existence_constraint</string> </value>
</item> </item>
<item>
<key> <string>int_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>message_no_such_property</string> </key> <key> <string>message_no_such_property</string> </key>
<value> <string>Source Reference must be set</string> </value> <value> <string>Source Reference must be set</string> </value>
...@@ -30,6 +54,52 @@ ...@@ -30,6 +54,52 @@
<key> <string>portal_type</string> </key> <key> <string>portal_type</string> </key>
<value> <string>Property Existence Constraint</string> </value> <value> <string>Property Existence Constraint</string> </value>
</item> </item>
<item>
<key> <string>string_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: here.getSlapState() != \'draft\'</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/>
</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> </dictionary>
</pickle> </pickle>
</record> </record>
......
...@@ -83,7 +83,6 @@ if offset >= SQL_WINDOW_SIZE:\n ...@@ -83,7 +83,6 @@ if offset >= SQL_WINDOW_SIZE:\n
else:\n else:\n
limit = (0, SQL_WINDOW_SIZE)\n limit = (0, SQL_WINDOW_SIZE)\n
\n \n
script.log(query_kw)\n
for computer_partition_candidate in context.portal_catalog(\n for computer_partition_candidate in context.portal_catalog(\n
limit=limit, **query_kw):\n limit=limit, **query_kw):\n
computer_partition_candidate = computer_partition_candidate.getObject() \n computer_partition_candidate = computer_partition_candidate.getObject() \n
......
...@@ -55,6 +55,8 @@ amount_list = specialise.getAggregatedAmountList(context)\n ...@@ -55,6 +55,8 @@ amount_list = specialise.getAggregatedAmountList(context)\n
if len(amount_list) != 1:\n if len(amount_list) != 1:\n
return False\n return False\n
\n \n
precision = context.getPriceCurrencyValue().getQuantityPrecision()\n
\n
amount = amount_list[0]\n amount = amount_list[0]\n
\n \n
total_price = amount.getTotalPrice()\n total_price = amount.getTotalPrice()\n
...@@ -64,7 +66,7 @@ for line in context.getMovementList(context.getPortalInvoiceMovementTypeList()): ...@@ -64,7 +66,7 @@ for line in context.getMovementList(context.getPortalInvoiceMovementTypeList()):
if line.getUse() == \'trade/tax\':\n if line.getUse() == \'trade/tax\':\n
invoice_tax += line.getTotalPrice()\n invoice_tax += line.getTotalPrice()\n
\n \n
return total_price == invoice_tax\n return round(total_price, precision) == round(invoice_tax, precision)\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
......
...@@ -56,14 +56,14 @@ portal = context.getPortalObject()\n ...@@ -56,14 +56,14 @@ portal = context.getPortalObject()\n
activate_kw = {\n activate_kw = {\n
\'tag\': tag\n \'tag\': tag\n
}\n }\n
uid_list = [q.UID for q in portal.Base_getNotCategoryRelatedList(\n path_list = [q.getPath() for q in portal.Base_getNotCategoryRelatedList(\n
portal_type_list=[\'Sale Order Line\'],\n portal_type_list=[\'Sale Order Line\'],\n
simulation_state_list=[\'confirmed\'],\n simulation_state_list=[\'confirmed\'],\n
base_category_uid=portal.portal_categories.delivery.getUid())]\n base_category_uid=portal.portal_categories.delivery.getUid())]\n
\n \n
if len(uid_list) > 0:\n if len(path_list) > 0:\n
portal.portal_catalog.searchAndActivate(\n portal.portal_catalog.searchAndActivate(\n
uid=uid_list,\n path=path_list,\n
activate_kw=activate_kw,\n activate_kw=activate_kw,\n
packet_size=1, # Separate calls to many transactions\n packet_size=1, # Separate calls to many transactions\n
method_id=\'DeliveryLine_updateAppliedRule\',\n method_id=\'DeliveryLine_updateAppliedRule\',\n
......
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
<value> <string encoding="cdata"><![CDATA[ <value> <string encoding="cdata"><![CDATA[
portal = context.getPortalObject()\n portal = context.getPortalObject()\n
\n
activate_kw = {\n activate_kw = {\n
\'tag\': tag\n \'tag\': tag\n
}\n }\n
...@@ -64,25 +65,25 @@ kw = dict(\n ...@@ -64,25 +65,25 @@ kw = dict(\n
simulation_state_list=simulation_state_list,\n simulation_state_list=simulation_state_list,\n
base_category_uid=portal.portal_categories.delivery.getUid()\n base_category_uid=portal.portal_categories.delivery.getUid()\n
)\n )\n
uid_list = set()\n path_list = set()\n
\n \n
for q in portal.Base_getNotCategoryRelatedList(**kw):\n for q in portal.Base_getNotCategoryRelatedList(**kw):\n
uid_list.add(q.UID)\n path_list.add(q.getPath())\n
\n \n
for q in portal.Base_getNotSynchronisedSimulationStateCategoryRelatedList(**kw):\n for q in portal.Base_getNotSynchronisedSimulationStateCategoryRelatedList(**kw):\n
uid_list.add(q.UID)\n path_list.add(q.getPath())\n
\n \n
# and all invoice lines and and transcation lines in confirmed state\n # and all invoice lines and and transcation lines in confirmed state\n
# XXX: We do simple version, and in Vifib confirmed ones can be often expanded, as it is short living state\n # XXX: We do simple version, and in Vifib confirmed ones can be often expanded, as it is short living state\n
\n \n
for q in portal.portal_catalog(portal_type=\'Invoice Line\', simulation_state=\'confirmed\'):\n for q in portal.portal_catalog(portal_type=\'Invoice Line\', simulation_state=\'confirmed\'):\n
if q.getSimulationState() == \'confirmed\':\n if q.getSimulationState() == \'confirmed\':\n
uid_list.add(q.UID)\n path_list.add(q.getPath())\n
uid_list = list(uid_list)\n path_list = list(path_list)\n
\n \n
if len(uid_list) > 0:\n if len(path_list) > 0:\n
portal.portal_catalog.searchAndActivate(\n portal.portal_catalog.searchAndActivate(\n
uid=uid_list,\n path=path_list,\n
packet_size=1, # Separate calls to many transactions\n packet_size=1, # Separate calls to many transactions\n
activate_kw=activate_kw,\n activate_kw=activate_kw,\n
method_id=\'DeliveryLine_updateAppliedRule\',\n method_id=\'DeliveryLine_updateAppliedRule\',\n
......
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>from Products.ERP5Type.Message import translateString\n <value> <string>from Products.ERP5Type.Message import translateString\n
from DateTime import DateTime\n
\n \n
payment_transaction = context\n payment_transaction = context\n
\n \n
...@@ -59,9 +58,6 @@ payment_transaction = context\n ...@@ -59,9 +58,6 @@ payment_transaction = context\n
if payment_transaction.getSimulationState() == "draft":\n if payment_transaction.getSimulationState() == "draft":\n
payment_transaction.plan(comment=translateString("Initialised by Delivery Builder."))\n payment_transaction.plan(comment=translateString("Initialised by Delivery Builder."))\n
\n \n
if payment_transaction.getStartDate() is None:\n
payment_transaction.setStartDate(DateTime())\n
\n
# First set the payment transaction in the building state on the causality workflow\n # First set the payment transaction in the building state on the causality workflow\n
payment_transaction.startBuilding()\n payment_transaction.startBuilding()\n
\n \n
......
...@@ -54,7 +54,6 @@ ...@@ -54,7 +54,6 @@
raise RuntimeError, \'related_simulation_movement_path_list is missing. Update ERP5 Product.\'\n raise RuntimeError, \'related_simulation_movement_path_list is missing. Update ERP5 Product.\'\n
\n \n
from Products.ERP5Type.Message import translateString\n from Products.ERP5Type.Message import translateString\n
\n
packing_list = context\n packing_list = context\n
\n \n
try:\n try:\n
...@@ -64,10 +63,16 @@ except AttributeError:\n ...@@ -64,10 +63,16 @@ except AttributeError:\n
pass\n pass\n
\n \n
# Then, modify state\n # Then, modify state\n
confirm_tag = \'%s_confirm\' % packing_list.getPath()\n packing_list.Delivery_confirm()\n
packing_list.activate(after_path_and_method_id=(related_simulation_movement_path_list,\n \n
(\'immediateReindexObject\',\'recursiveImmediateReindexObject\')),\n line = packing_list.contentValues(portal_type=\'Sale Packing List Line\')[0]\n
tag=confirm_tag).Delivery_confirm()\n portal = packing_list.getPortalObject()\n
comment = translateString(\'Automatic transition on setup delivery.\')\n
if line.getResource() == portal.portal_preferences.getPreferredInstanceSetupResource():\n
if portal.portal_workflow.isTransitionPossible(packing_list, \'start\'):\n
packing_list.start(comment=comment)\n
if portal.portal_workflow.isTransitionPossible(packing_list, \'stop\'):\n
packing_list.stop(comment=comment)\n
\n \n
# First set the packing_list in the building state\n # First set the packing_list in the building state\n
packing_list.startBuilding()\n packing_list.startBuilding()\n
......
<?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>software_instance = state_change[\'object\']\n
hosting_subscription_uid = state_change.kwargs[\'hosting_subscription_uid\']\n
hosting_subscription = software_instance.portal_catalog.getResultValue(uid=hosting_subscription_uid)\n
portal = software_instance.getPortalObject()\n
\n
# Get services\n
portal_preferences = portal.portal_preferences\n
service_uid_list = []\n
\n
if service_relative_url is None:\n
for service_relative_url in \\\n
(portal_preferences.getPreferredInstanceSetupResource(),\n
portal_preferences.getPreferredInstanceHostingResource(),\n
portal_preferences.getPreferredInstanceCleanupResource(),\n
portal_preferences.getPreferredInstanceUpdateResource(),\n
):\n
service = portal.restrictedTraverse(service_relative_url)\n
service_uid_list.append(service.getUid())\n
else:\n
service = portal.restrictedTraverse(service_relative_url)\n
service_uid_list.append(service.getUid())\n
\n
# Packing List valid state\n
state_list = []\n
state_list.extend(portal.getPortalReservedInventoryStateList())\n
state_list.extend(portal.getPortalTransitInventoryStateList())\n
state_list.extend([\'stopped\'])\n
\n
packing_list_line = portal.portal_catalog.getResultValue(\n
portal_type=\'Sale Packing List Line\',\n
simulation_state=state_list,\n
aggregate_uid=hosting_subscription_uid,\n
default_resource_uid=service_uid_list,\n
sort_on=((\'movement.start_date\', \'DESC\'),),\n
limit=1,\n
)\n
\n
if packing_list_line is None:\n
raise ValueError("No sale packing list line found for %s" % \\\n
hosting_subscription.getRelativeUrl())\n
else:\n
return packing_list_line\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change, service_relative_url=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>HostingSubscription_getInstancePackingListLine</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>software_instance = state_change[\'object\']\n
software_instance.Base_checkConsistency()\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>SoftwareInstance_checkConsistency</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>software_instance = state_change[\'object\']\n
instance_setup_sale_packing_list_line = \\\n
context.SoftwareInstance_getInstancePackingListLine(\n
state_change, \n
service_relative_url=software_instance.portal_preferences.\\\n
getPreferredInstanceSetupResource())\n
instance_setup_sale_packing_list = instance_setup_sale_packing_list_line.getParentValue()\n
portal = context.getPortalObject()\n
sale_packing_list_module = portal.getDefaultModule(portal_type=\'Sale Packing List\')\n
if tag is not None:\n
activate_kw = {\'tag\': tag}\n
else:\n
activate_kw = None\n
sale_packing_list = sale_packing_list_module.newContent(\n
portal_type=\'Sale Packing List\',\n
specialise=instance_setup_sale_packing_list.getSpecialise() or instance_setup_sale_packing_list.getCausalityValue().getSpecialise(),\n
destination=instance_setup_sale_packing_list.getDestination(),\n
destination_section=instance_setup_sale_packing_list.getDestinationSection(),\n
destination_decision_=instance_setup_sale_packing_list.getDestinationDecision(),\n
source=instance_setup_sale_packing_list.getSource(),\n
source_section=instance_setup_sale_packing_list.getSourceSection(),\n
price_currency=instance_setup_sale_packing_list.getPriceCurrency(),\n
start_date=DateTime(),\n
activate_kw=activate_kw)\n
\n
service = portal.restrictedTraverse(service_relative_url)\n
instance_hosting_sale_packing_list_line = sale_packing_list.newContent(\n
portal_type=\'Sale Packing List Line\',\n
resource=service_relative_url,\n
quantity=instance_setup_sale_packing_list_line.getQuantity(),\n
aggregate_list=instance_setup_sale_packing_list_line.getAggregateList(),\n
# XXX Hardcode price on service\n
price=service.getSaleSupplyLineBasePrice(),\n
activate_kw=activate_kw\n
)\n
return sale_packing_list\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change, service_relative_url, tag=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SoftwareInstance_createSalePackingList</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>software_instance = state_change[\'object\']\n
service_relative_url = software_instance.portal_preferences.\\\n
getPreferredInstanceCleanupResource()\n
return context.SoftwareInstance_getInstancePackingListLine(\n
state_change, \n
service_relative_url=service_relative_url)\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>SoftwareInstance_getInstanceDestroyPackingListLine</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>software_instance = state_change[\'object\']\n
service_relative_url = software_instance.portal_preferences.\\\n
getPreferredInstanceHostingResource()\n
return context.SoftwareInstance_getInstancePackingListLine(\n
state_change, \n
service_relative_url=service_relative_url)\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>SoftwareInstance_getInstanceHostingPackingListLine</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>software_instance = state_change[\'object\']\n
service_relative_url = software_instance.portal_preferences.\\\n
getPreferredInstanceSetupResource()\n
return context.SoftwareInstance_getInstancePackingListLine(\n
state_change, \n
service_relative_url=service_relative_url)\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>SoftwareInstance_getInstanceSetupPackingListLine</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 encoding="cdata"><![CDATA[
software_instance = state_change[\'object\']\n
service_relative_url = software_instance.portal_preferences.\\\n
getPreferredInstanceHostingResource()\n
need_to_create_packing_list = False\n
try:\n
instance_setup_line = context.SoftwareInstance_getInstanceSetupPackingListLine(state_change)\n
except ValueError:\n
pass\n
else:\n
if instance_setup_line.getSimulationState() == \'stopped\':\n
try:\n
sale_packing_list_line = context.SoftwareInstance_getInstanceHostingPackingListLine(state_change)\n
except ValueError:\n
need_to_create_packing_list = True\n
else:\n
if sale_packing_list_line.getSimulationState() == \'stopped\':\n
# previously it was still in stop in progress state, now it shall be started again\n
sale_packing_list_line.getParentValue().deliver()\n
if sale_packing_list_line.getSimulationState() == \'delivered\':\n
need_to_create_packing_list = True\n
\n
portal = context.getPortalObject()\n
if need_to_create_packing_list:\n
tag = "%s_startInProgress" % software_instance.getUid()\n
if (portal.portal_activities.countMessageWithTag(tag) > 0):\n
raise ValueError("Software Instance is currently being started.")\n
# lock software instance in transaction\n
software_instance.serialize()\n
sale_packing_list = context.SoftwareInstance_createSalePackingList(state_change, service_relative_url, tag)\n
sale_packing_list.confirm(activate_kw={\'tag\':tag})\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>SoftwareInstance_requestStart</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 encoding="cdata"><![CDATA[
from Products.DCWorkflow.DCWorkflow import ValidationFailed\n
from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
\n
software_instance = state_change[\'object\']\n
portal = software_instance.getPortalObject()\n
\n
if software_instance.SoftwareInstance_getStatus() == \'Destroyed\':\n
raise ValidationFailed, "%s state is %s" % (software_instance.getRelativeUrl(), software_instance.SoftwareInstance_getStatus())\n
\n
# avoid conflicting with "in progress" update tasks\n
tag_list = ["%s_destroyInProgress" % software_instance.getUid(), "%s_startInProgress" % software_instance.getUid()]\n
for tag in tag_list:\n
if (portal.portal_activities.countMessageWithTag(tag) > 0):\n
# do nothing if something is progress\n
return\n
portal_preferences = portal.portal_preferences\n
\n
update_resource_uid = portal.restrictedTraverse(portal_preferences.getPreferredInstanceUpdateResource()).getUid()\n
setup_resource_uid = portal.restrictedTraverse(portal_preferences.getPreferredInstanceSetupResource()).getUid()\n
hosting_resource_uid = portal.restrictedTraverse(portal_preferences.getPreferredInstanceHostingResource()).getUid()\n
\n
service_uid_state_mapping = {\n
setup_resource_uid: [\'stopped\'],\n
hosting_resource_uid: [\'started\', \'delivered\'],\n
update_resource_uid: [\'started\', \'stopped\', \'delivered\'],\n
}\n
try:\n
previous_packing_list_line = context.SoftwareInstance_getInstancePackingListLine(state_change)\n
except ValueError:\n
# no packing list yet, no need to update\n
return\n
\n
resource_uid = previous_packing_list_line.getResourceUid()\n
if resource_uid == hosting_resource_uid:\n
if previous_packing_list_line.getSimulationState() not in service_uid_state_mapping[hosting_resource_uid]:\n
return\n
elif resource_uid == setup_resource_uid:\n
if previous_packing_list_line.getSimulationState() not in service_uid_state_mapping[setup_resource_uid]:\n
return\n
elif resource_uid == update_resource_uid:\n
if previous_packing_list_line.getSimulationState() not in service_uid_state_mapping[update_resource_uid]:\n
return\n
else:\n
# not "supported" resource, eg. cleanup\n
return\n
\n
# time to create packing list\n
context.SoftwareInstance_createSalePackingList(state_change, portal_preferences.getPreferredInstanceUpdateResource()).confirm()\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>SoftwareInstance_requestUpdate</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.SoftwareInstance_getInstanceSetupPackingListLine(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>SoftwareInstance_startComputerPartitionInstallation</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.SoftwareInstance_getInstanceSetupPackingListLine(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>SoftwareInstance_stopComputerPartitionInstallation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
<tuple> <tuple>
<string>destroy_computer_partition</string> <string>destroy_computer_partition</string>
<string>destroy_requested</string> <string>destroy_requested</string>
<string>lock</string>
<string>rename</string>
<string>report_computer_partition_bang</string> <string>report_computer_partition_bang</string>
<string>report_computer_partition_error</string> <string>report_computer_partition_error</string>
<string>request_destroy_computer_partition</string> <string>request_destroy_computer_partition</string>
......
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
<tuple> <tuple>
<string>destroy_computer_partition</string> <string>destroy_computer_partition</string>
<string>destroy_requested</string> <string>destroy_requested</string>
<string>lock</string>
<string>rename</string>
<string>report_computer_partition_bang</string> <string>report_computer_partition_bang</string>
<string>report_computer_partition_error</string> <string>report_computer_partition_error</string>
<string>request_destroy_computer_partition</string> <string>request_destroy_computer_partition</string>
......
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
<tuple> <tuple>
<string>destroy_computer_partition</string> <string>destroy_computer_partition</string>
<string>destroy_requested</string> <string>destroy_requested</string>
<string>lock</string>
<string>rename</string>
<string>report_computer_partition_bang</string> <string>report_computer_partition_bang</string>
<string>report_computer_partition_error</string> <string>report_computer_partition_error</string>
<string>request_destroy_computer_partition</string> <string>request_destroy_computer_partition</string>
......
...@@ -16,7 +16,6 @@ erp5_full_text_myisam_catalog ...@@ -16,7 +16,6 @@ erp5_full_text_myisam_catalog
erp5_ingestion erp5_ingestion
erp5_ingestion_mysql_innodb_catalog erp5_ingestion_mysql_innodb_catalog
erp5_invoicing erp5_invoicing
erp5_item
erp5_jquery erp5_jquery
erp5_jquery_ui erp5_jquery_ui
erp5_km erp5_km
...@@ -41,4 +40,6 @@ erp5_tiosafe_core ...@@ -41,4 +40,6 @@ erp5_tiosafe_core
erp5_trade erp5_trade
erp5_web erp5_web
erp5_web_download_theme erp5_web_download_theme
erp5_xhtml_jquery_style erp5_xhtml_jquery_style
\ No newline at end of file vifib_slapos_core
erp5_bearer_token
\ No newline at end of file
software_instance_module
\ No newline at end of file
Slave Instance | predecessor
Software Instance Module | business_application
Software Instance | predecessor
\ No newline at end of file
Item | VariationRange
Slave Instance | Reference
Slave Instance | SlaveInstanceConstraint Slave Instance | SlaveInstanceConstraint
Slave Instance | SoftwareInstance Slave Instance | SoftwareInstance
Slave Instance | TextDocument
Slave Instance | VariationRange
Software Instance | Reference
Software Instance | SoftwareInstance Software Instance | SoftwareInstance
Software Instance | SoftwareInstanceConstraint Software Instance | SoftwareInstanceConstraint
Software Instance | TextDocument \ No newline at end of file
Software Instance | VariationRange
\ No newline at end of file
Slave Instance | edit_workflow
Slave Instance | item_workflow
Slave Instance | software_instance_slap_interface_workflow
Software Instance | edit_workflow
Software Instance | item_workflow
Software Instance | software_instance_slap_interface_workflow
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string></string> </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/>
</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>Base_viewCrmFieldLibrary</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>Base_viewCrmFieldLibrary</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></string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Nexedi SA
\ No newline at end of file
erp5_crm
\ No newline at end of file
Personalization of erp5_crm for ViFiB
\ No newline at end of file
14
\ No newline at end of file
vifib_crm
\ No newline at end of file
vifib_crm
\ No newline at end of file
Vifib 0.5
\ No newline at end of file
100 102
\ No newline at end of file \ No newline at end of file
vifib_default_site_preference
vifib_default_system_preference vifib_default_system_preference
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Section" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_folders_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Copy_or_Move_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Delete_objects_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_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>authorization_forced</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>custom_render_method_id</string> </key>
<value> <string>WebSection_viewRequestAccessToken</string> </value>
</item>
<item>
<key> <string>default_page_displayed</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>request-access-token</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Section</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Requests Access Token</string> </value>
</item>
<item>
<key> <string>visible</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>
91 92
\ No newline at end of file \ No newline at end of file
<local_roles_item>
<local_roles>
<role id='R-MEMBER'>
<item>Auditor</item>
<item>Author</item>
</role>
<role id='zope'>
<item>Owner</item>
</role>
</local_roles>
</local_roles_item>
\ No newline at end of file
<local_roles_item> <local_roles_item>
<local_roles> <local_roles>
<role id='G-COMPANY'>
<item>Auditor</item>
<item>Author</item>
</role>
<role id='R-COMPUTER'> <role id='R-COMPUTER'>
<item>Auditor</item> <item>Auditor</item>
</role> </role>
......
<type_roles>
<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='Auditor; Assignor'>
<property id='title'>Person can manage tokens related to them</property>
<property id='base_category_script'>BearerTokenType_getSecurityCategoryFromSelfDestinationReference</property>
<multi_property id='base_category'>group</multi_property>
</role>
</type_roles>
\ No newline at end of file
...@@ -4,9 +4,10 @@ ...@@ -4,9 +4,10 @@
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAggregateMovementItemByComputerPartition</property> <property id='base_category_script'>ERP5Type_getSecurityCategoryFromAggregateMovementItemByComputerPartition</property>
<multi_property id='base_category'>aggregate</multi_property> <multi_property id='base_category'>aggregate</multi_property>
</role> </role>
<role id='Auditor'> <role id='Assignee'>
<property id='title'>Customer of the Hosting Subscription</property> <property id='title'>Customer of the Hosting Subscription</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromAggregateMovementItemByPerson</property> <property id='description'>ERP5Type_getSecurityCategoryFromAggregateMovementItemByPerson</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='base_category'>destination_section</multi_property> <multi_property id='base_category'>destination_section</multi_property>
</role> </role>
<role id='Assignor'> <role id='Assignor'>
......
...@@ -9,6 +9,11 @@ ...@@ -9,6 +9,11 @@
<property id='base_category_script'>SoftwareType_getSecurityCategoryFromAggregateMovementItemByPerson</property> <property id='base_category_script'>SoftwareType_getSecurityCategoryFromAggregateMovementItemByPerson</property>
<multi_property id='base_category'>destination_section</multi_property> <multi_property id='base_category'>destination_section</multi_property>
</role> </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'> <role id='Assignee'>
<property id='title'>Owner become Assignee</property> <property id='title'>Owner become Assignee</property>
<property id='description'>XXX Needed to allow doActionFor while creating the document</property> <property id='description'>XXX Needed to allow doActionFor while creating the document</property>
......
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
<multi_property id='category'>role/computer</multi_property> <multi_property id='category'>role/computer</multi_property>
<multi_property id='base_category'>role</multi_property> <multi_property id='base_category'>role</multi_property>
</role> </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'> <role id='Auditor; Author'>
<property id='title'>Instance</property> <property id='title'>Instance</property>
<multi_property id='category'>role/instance</multi_property> <multi_property id='category'>role/instance</multi_property>
......
...@@ -9,6 +9,11 @@ ...@@ -9,6 +9,11 @@
<property id='base_category_script'>SoftwareType_getSecurityCategoryFromAggregateMovementItemByPerson</property> <property id='base_category_script'>SoftwareType_getSecurityCategoryFromAggregateMovementItemByPerson</property>
<multi_property id='base_category'>destination_section</multi_property> <multi_property id='base_category'>destination_section</multi_property>
</role> </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'> <role id='Assignee'>
<property id='title'>Owner become Assignee</property> <property id='title'>Owner become Assignee</property>
<property id='description'>XXX Needed to allow doActionFor while creating the document</property> <property id='description'>XXX Needed to allow doActionFor while creating the document</property>
......
...@@ -23,10 +23,6 @@ ...@@ -23,10 +23,6 @@
<value> <value>
<tuple> <tuple>
<string>reference</string> <string>reference</string>
<string>source_reference</string>
<string>root_slave</string>
<string>root_software_release_url</string>
<string>root_state</string>
<string>title</string> <string>title</string>
</tuple> </tuple>
</value> </value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Existence 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_property</string> </key>
<value>
<tuple>
<string>source_reference</string>
<string>root_slave</string>
<string>root_software_release_url</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>instance_property_constraint</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Existence Constraint</string> </value>
</item>
<item>
<key> <string>string_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: here.getSlapState() != \'draft\'</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/>
</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>
...@@ -40,18 +40,48 @@ ...@@ -40,18 +40,48 @@
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>predecessor_constraint</string> </value> <value> <string>predecessor_constraint</string> </value>
</item> </item>
<item>
<key> <string>int_index</string> </key>
<value>
<none/>
</value>
</item>
<item> <item>
<key> <string>max_arity</string> </key> <key> <string>max_arity</string> </key>
<value> <int>1</int> </value> <value>
<none/>
</value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item> </item>
<item> <item>
<key> <string>min_arity</string> </key> <key> <string>min_arity</string> </key>
<value> <int>1</int> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>portal_type</string> </key> <key> <string>portal_type</string> </key>
<value> <string>Category Membership Arity Constraint</string> </value> <value> <string>Category Membership Arity Constraint</string> </value>
</item> </item>
<item>
<key> <string>string_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: here.getSlapState() != \'draft\'</string> </value>
</item>
<item> <item>
<key> <string>use_acquisition</string> </key> <key> <string>use_acquisition</string> </key>
<value> <int>0</int> </value> <value> <int>0</int> </value>
......
...@@ -50,26 +50,46 @@ ...@@ -50,26 +50,46 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>"""Copy of standard Event_init with proxy role"""\n <value> <string># XXX For now, this script requires proxy manager\n
# Set preferred text format\n \n
context.edit(content_type=context.portal_preferences.getPreferredTextFormat())\n # base_category_list : list of category values we need to retrieve\n
# user_name : string obtained from getSecurityManager().getUser().getUserName() [NuxUserGroup]\n
# or from getSecurityManager().getUser().getId() [PluggableAuthService with ERP5GroupManager]\n
# object : object which we want to assign roles to.\n
# portal_type : portal type of object\n
\n
# must always return a list of dicts\n
\n
category_list = []\n
\n
if obj is None:\n
return []\n
\n
person = obj.getPortalObject().portal_catalog.getResultValue(portal_type=\'Person\', reference=obj.getDestinationReference())\n
\n
category_list = []\n
if person is not None:\n
for base_category in base_category_list:\n
category_list.append({base_category: person.getRelativeUrl()})\n
\n
return category_list\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>*args, **kw</string> </value> <value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item> </item>
<item> <item>
<key> <string>_proxy_roles</string> </key> <key> <string>_proxy_roles</string> </key>
<value> <value>
<tuple> <tuple>
<string>Assignee</string> <string>Manager</string>
</tuple> </tuple>
</value> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>Event_init</string> </value> <value> <string>BearerTokenType_getSecurityCategoryFromSelfDestinationReference</string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -101,7 +101,7 @@ class TestVifibUserAdmin(testVifibMixin): ...@@ -101,7 +101,7 @@ class TestVifibUserAdmin(testVifibMixin):
# Deliver IPL # Deliver IPL
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'confirm_action') internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'confirm_action')
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'stop_action') internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'stop_action')
self.assertEquals('building', internal_packing_list.getCausalityState()) self.assertEquals('draft', internal_packing_list.getCausalityState())
transaction.commit() transaction.commit()
self.stepTic() self.stepTic()
transaction.commit() transaction.commit()
...@@ -109,7 +109,7 @@ class TestVifibUserAdmin(testVifibMixin): ...@@ -109,7 +109,7 @@ class TestVifibUserAdmin(testVifibMixin):
self.logout() self.logout()
# Computer registration has to be validated by a Vifib System Administrator # Computer registration has to be validated by a Vifib System Administrator
self.login(user_name='test_vifib_admin') self.login(user_name='test_vifib_admin')
self.assertEquals('solved', internal_packing_list.getCausalityState()) self.assertEquals('draft', internal_packing_list.getCausalityState())
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'deliver_action') internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'deliver_action')
self.logout() self.logout()
...@@ -169,7 +169,7 @@ class TestVifibUserAdmin(testVifibMixin): ...@@ -169,7 +169,7 @@ class TestVifibUserAdmin(testVifibMixin):
# Deliver IPL # Deliver IPL
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'confirm_action') internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'confirm_action')
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'stop_action') internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'stop_action')
self.assertEquals('building', internal_packing_list.getCausalityState()) self.assertEquals('draft', internal_packing_list.getCausalityState())
transaction.commit() transaction.commit()
self.stepTic() self.stepTic()
transaction.commit() transaction.commit()
...@@ -177,7 +177,7 @@ class TestVifibUserAdmin(testVifibMixin): ...@@ -177,7 +177,7 @@ class TestVifibUserAdmin(testVifibMixin):
self.logout() self.logout()
# Computer registration has to be validated by a Vifib System Administrator # Computer registration has to be validated by a Vifib System Administrator
self.login(user_name='test_vifib_admin') self.login(user_name='test_vifib_admin')
self.assertEquals('solved', internal_packing_list.getCausalityState()) self.assertEquals('draft', internal_packing_list.getCausalityState())
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'deliver_action') internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'deliver_action')
self.logout() self.logout()
......
...@@ -64,7 +64,11 @@ class TestVifibUserCustomer(testVifibMixin): ...@@ -64,7 +64,11 @@ class TestVifibUserCustomer(testVifibMixin):
person_value.requestSoftwareInstance( person_value.requestSoftwareInstance(
software_release=software_release_value.getUrlString(), software_release=software_release_value.getUrlString(),
software_title=software_title, software_title=software_title,
instance_xml='<?xml version="1.0" encoding="utf-8"?><instance/>') instance_xml='<?xml version="1.0" encoding="utf-8"?><instance/>',
sla_xml='<?xml version="1.0" encoding="utf-8"?><instance/>',
software_type='RootSoftwareInstance',
shared=False,
state='started')
transaction.commit() transaction.commit()
self.tic() self.tic()
# Note: This is tricky part. Workflow methods does not return nothing # Note: This is tricky part. Workflow methods does not return nothing
......
...@@ -69,7 +69,6 @@ ...@@ -69,7 +69,6 @@
<value> <value>
<list> <list>
<string>Computer</string> <string>Computer</string>
<string>Hosting Subscription</string>
<string>Person</string> <string>Person</string>
<string>Slave Instance</string> <string>Slave Instance</string>
<string>Software Instance</string> <string>Software Instance</string>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="InteractionDefinition" module="Products.ERP5.Interaction"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>actbox_category</string> </key>
<value> <string>workflow</string> </value>
</item>
<item>
<key> <string>actbox_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>actbox_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>activate_script_name</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>after_script_name</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>before_commit_script_name</string> </key>
<value>
<list>
<string>Base_updateAllLocalRoles</string>
</list>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>guard</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Hosting Subscription</string> </value>
</item>
<item>
<key> <string>method_id</string> </key>
<value>
<list>
<string>_setReference.*</string>
<string>_setDestinationSection.*</string>
</list>
</value>
</item>
<item>
<key> <string>once_per_transaction</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type_filter</string> </key>
<value>
<list>
<string>Hosting Subscription</string>
</list>
</value>
</item>
<item>
<key> <string>script_name</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>temporary_document_disallowed</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>trigger_type</string> </key>
<value> <int>2</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -58,9 +58,9 @@ portal_type_list = ["Hosting Subscription", "Computer Partition", "Software Inst ...@@ -58,9 +58,9 @@ portal_type_list = ["Hosting Subscription", "Computer Partition", "Software Inst
for movement in state_change[\'object\'].getMovementList():\n for movement in state_change[\'object\'].getMovementList():\n
tag = "softinssec_%s" % movement.getUid()\n tag = "softinssec_%s" % movement.getUid()\n
movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getPath(),\n movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getPath(),\n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).serialize()\n (\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).getId()\n
movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getParentValue().getPath(),\n movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getParentValue().getPath(),\n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).serialize()\n (\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).getId()\n
for software_instance in movement.getAggregateValueList(portal_type=portal_type_list):\n for software_instance in movement.getAggregateValueList(portal_type=portal_type_list):\n
software_instance.activate(after_tag=tag).updateLocalRolesOnSecurityGroups()\n software_instance.activate(after_tag=tag).updateLocalRolesOnSecurityGroups()\n
</string> </value> </string> </value>
......
...@@ -58,9 +58,9 @@ portal_type_list = ["Slave Instance", "Software Instance", "Hosting Subscription ...@@ -58,9 +58,9 @@ portal_type_list = ["Slave Instance", "Software Instance", "Hosting Subscription
for movement in state_change[\'object\'].getMovementList():\n for movement in state_change[\'object\'].getMovementList():\n
tag = "softinssec_%s" % movement.getUid()\n tag = "softinssec_%s" % movement.getUid()\n
movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getPath(),\n movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getPath(),\n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).serialize()\n (\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).getId()\n
movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getParentValue().getPath(),\n movement.activate(activity=\'SQLQueue\', tag=tag, after_path_and_method_id=(movement.getParentValue().getPath(),\n
(\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).serialize()\n (\'immediateReindexObject\', \'recursiveImmediateReindexObject\'))).getId()\n
for software_instance in movement.getAggregateValueList(portal_type=portal_type_list):\n for software_instance in movement.getAggregateValueList(portal_type=portal_type_list):\n
software_instance.activate(after_tag=tag).updateLocalRolesOnSecurityGroups()\n software_instance.activate(after_tag=tag).updateLocalRolesOnSecurityGroups()\n
</string> </value> </string> </value>
......
vifib_agent
vifib_base vifib_base
vifib_core vifib_core
vifib_crm
vifib_data vifib_data
vifib_data_category vifib_data_category
vifib_data_payzen vifib_data_payzen
......
414 426
\ No newline at end of file \ No newline at end of file
...@@ -31,6 +31,7 @@ accounting_module/test_vifib_user_admin_invoice ...@@ -31,6 +31,7 @@ accounting_module/test_vifib_user_admin_invoice
accounting_module/test_vifib_user_admin_payment accounting_module/test_vifib_user_admin_payment
accounting_module/test_vifib_user_developer_invoice accounting_module/test_vifib_user_developer_invoice
accounting_module/test_vifib_user_developer_payment accounting_module/test_vifib_user_developer_payment
bearer_token_module
business_process_module business_process_module
business_process_module/vifib_purchase_business_process business_process_module/vifib_purchase_business_process
business_process_module/vifib_sale_business_process business_process_module/vifib_sale_business_process
......
...@@ -101,4 +101,5 @@ support_request_module ...@@ -101,4 +101,5 @@ support_request_module
system_event_module system_event_module
tax_module tax_module
transformation_module transformation_module
web_page_module web_page_module
\ No newline at end of file bearer_token_module
\ No newline at end of file
...@@ -7,6 +7,8 @@ Acknowledgement ...@@ -7,6 +7,8 @@ Acknowledgement
Assignment Assignment
Balance Transaction Balance Transaction
Bank Account Bank Account
Bearer Token
Bearer Token Module
Business Process Business Process
Business Process Module Business Process Module
Campaign Campaign
......
...@@ -7,6 +7,8 @@ Acknowledgement ...@@ -7,6 +7,8 @@ Acknowledgement
Assignment Assignment
Balance Transaction Balance Transaction
Bank Account Bank Account
Bearer Token
Bearer Token Module
Business Process Business Process
Business Process Module Business Process Module
Campaign Campaign
......
<?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>description</string> </key>
<value> <string>Short description that will appear in the search result list.</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>WebPage_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Description</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>id</string> </key>
<value> <string>my_effective_date</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_effective_date</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>WebPage_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_file</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_file</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>File_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>description</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_group_list</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>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>description</string> </key>
<value> <string>A document can be associated to one or multiple entities in the group classification tree.</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_category_list</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Groups</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_publication_section_list</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_publication_section_list</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>WebPage_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>
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
</item> </item>
<item> <item>
<key> <string>form_id</string> </key> <key> <string>form_id</string> </key>
<value> <string>Base_viewForgeReleaseFieldLibrary</string> </value> <value> <string>erp5_forge_release/SoftwareRelease_view</string> </value>
</item> </item>
<item> <item>
<key> <string>target</string> </key> <key> <string>target</string> </key>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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