Commit 2f9759a3 authored by Łukasz Nowak's avatar Łukasz Nowak

Drop Internal Packing List related code.

This portal type is not used anymore.
parent 2b4904c1
......@@ -105,7 +105,6 @@ active_process.postResult(active_result)
'hosting_subscription_module',
'image_module',
'internal_order_module',
'internal_packing_list_module',
'internal_supply_module',
'internal_trade_condition_module',
'inventory_module',
......
252
\ No newline at end of file
253
\ No newline at end of file
<local_roles_item>
<local_roles>
<role id='G-COMPANY'>
<item>Auditor</item>
<item>Author</item>
</role>
<role id='R-MEMBER'>
<item>Auditor</item>
<item>Author</item>
</role>
<role id='admin'>
<item>Owner</item>
</role>
</local_roles>
</local_roles_item>
\ No newline at end of file
<property_sheet_list>
<portal_type id="Internal Packing List">
<item>VifibInternalPackingListConstraint</item>
</portal_type>
<portal_type id="Internal Packing List Line">
<item>VifibInternalPackingListLineConstraint</item>
</portal_type>
<portal_type id="Open Sale Order">
<item>VifibOpenSaleOrderConstraint</item>
</portal_type>
......
<type_roles>
<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'>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'>Source Administration</property>
<property id='description'>Monovalued role</property>
<property id='base_category_script'>ERP5Type_getSecurityCategoryFromContent</property>
<multi_property id='base_category'>source_administration</multi_property>
</role>
</type_roles>
\ No newline at end of file
<workflow_chain>
<chain>
<type>Internal Packing List</type>
<workflow>local_permission_vifib_interaction_workflow</workflow>
</chain>
<chain>
<type>Open Sale Order</type>
<workflow>local_permission_vifib_interaction_workflow</workflow>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>VifibInternalPackingListConstraint</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?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>destination</string>
</tuple>
</value>
</item>
<item>
<key> <string>constraint_portal_type</string> </key>
<value> <string>python: portal.getPortalNodeTypeList()</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Destination must be defined</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_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>Destination must be defined</string> </value>
</item>
<item>
<key> <string>message_arity_too_small</string> </key>
<value> <string>Destination must be defined</string> </value>
</item>
<item>
<key> <string>message_arity_with_portal_type_not_in_range</string> </key>
<value> <string>Destination must be defined</string> </value>
</item>
<item>
<key> <string>message_arity_with_portal_type_too_small</string> </key>
<value> <string>Destination must be defined</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>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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Category Membership State 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>base_category</string> </key>
<value> <string>destination</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_state_constraint</string> </value>
</item>
<item>
<key> <string>membership_portal_type_list</string> </key>
<value> <string>python: portal.getPortalNodeTypeList()</string> </value>
</item>
<item>
<key> <string>message_different_state</string> </key>
<value> <string>Destination must be validated</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Membership State Constraint</string> </value>
</item>
<item>
<key> <string>workflow_state_list</string> </key>
<value> <string>python: \'validated\'</string> </value>
</item>
<item>
<key> <string>workflow_variable</string> </key>
<value> <string>validation_state</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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Content 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_portal_type</string> </key>
<value> <string>python: (\'Internal Packing List Line\',)</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Internal Packing List Line is not defined</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>lines_constraint</string> </value>
</item>
<item>
<key> <string>message_no_subobject</string> </key>
<value> <string>Internal Packing List Line is not defined</string> </value>
</item>
<item>
<key> <string>message_no_subobject_portal_type</string> </key>
<value> <string>Internal Packing List Line is not defined</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Content Existence Constraint</string> </value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: object.getSimulationState() != \'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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="String Attribute Match 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>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>message_property_not_set</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</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>reference</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>reference_not_empty_constraint</string> </value>
</item>
<item>
<key> <string>message_attribute_match</string> </key>
<value> <string>Reference must be defined</string> </value>
</item>
<item>
<key> <string>message_no_such_property</string> </key>
<value> <string>Reference must be defined</string> </value>
</item>
<item>
<key> <string>message_property_not_set</string> </key>
<value> <string>Reference must be defined</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>String Attribute Match 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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Category Membership State 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>base_category</string> </key>
<value> <string>source</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_state_constraint</string> </value>
</item>
<item>
<key> <string>membership_portal_type_list</string> </key>
<value> <string>python: portal.getPortalNodeTypeList()</string> </value>
</item>
<item>
<key> <string>message_different_state</string> </key>
<value> <string>Source must be validated</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Membership State Constraint</string> </value>
</item>
<item>
<key> <string>workflow_state_list</string> </key>
<value> <string>python: \'validated\'</string> </value>
</item>
<item>
<key> <string>workflow_variable</string> </key>
<value> <string>validation_state</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>
<?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>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>message_property_not_set</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</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>start_date</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Property start_date must be defined</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>start_date_existence_constraint</string> </value>
</item>
<item>
<key> <string>message_no_such_property</string> </key>
<value> <string>Property start_date must be defined</string> </value>
</item>
<item>
<key> <string>message_property_not_set</string> </key>
<value> <string>Property start_date must be defined</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Existence 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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>VifibInternalPackingListLineConstraint</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?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: \'Computer\'</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>internal_packing_list_line_aggregate_software_release_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>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>
<?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>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>message_property_not_set</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</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>quantity</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Property quantity must be defined</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>quantity_existence_constraint</string> </value>
</item>
<item>
<key> <string>message_no_such_property</string> </key>
<value> <string>Property quantity must be defined</string> </value>
</item>
<item>
<key> <string>message_property_not_set</string> </key>
<value> <string>Property quantity must be defined</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Existence Constraint</string> </value>
</item>
<item>
<key> <string>test_tales_expression</string> </key>
<value> <string>python: object.getSimulationState() != \'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>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Attribute Equality 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_attribute_name</string> </key>
<value> <string>quantity</string> </value>
</item>
<item>
<key> <string>constraint_attribute_value</string> </key>
<value> <string>python: 1.0</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>quantity_value_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>Attribute Equality 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: context.getSimulationState() != \'cancelled\'</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>
<?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>resource</string>
</tuple>
</value>
</item>
<item>
<key> <string>constraint_portal_type</string> </key>
<value> <string>python: (\'Service\',)</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Resource must be defined</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>resource_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>Resource must be defined</string> </value>
</item>
<item>
<key> <string>message_arity_too_small</string> </key>
<value> <string>Resource must be defined</string> </value>
</item>
<item>
<key> <string>message_arity_with_portal_type_not_in_range</string> </key>
<value> <string>Resource must be defined</string> </value>
</item>
<item>
<key> <string>message_arity_with_portal_type_too_small</string> </key>
<value> <string>Resource must be defined</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.getSimulationState() != \'draft\'</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>
......@@ -69,129 +69,6 @@ class TestVifibSoftwareProductConstraint(testVifibMixin):
self.assertFalse(consistency_message in getMessageList(software_product))
self.assertFalse(consistency_message in getMessageList(software_product_2))
class TestVifibInternalPackingListConstraint(testVifibMixin):
def getTitle(self):
return "Vifib Internal Packing List Constraint checks"
def test_reference_not_empty(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
# reference is set during object creation, set reset it
ipl.setReference(None)
consistency_message = 'Reference must be defined'
self.assertTrue(consistency_message in getMessageList(ipl))
ipl.setReference(rndstr())
self.assertFalse(consistency_message in getMessageList(ipl))
def test_start_date_not_empty(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
consistency_message = 'Property start_date must be defined'
self.assertTrue(consistency_message in getMessageList(ipl))
ipl.setStartDate('2011/01/01')
self.assertFalse(consistency_message in getMessageList(ipl))
def test_destination_not_empty(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
destination = self.portal.organisation_module.newContent(
portal_type='Organisation')
consistency_message = 'Destination must be defined'
self.assertTrue(consistency_message in getMessageList(ipl))
ipl.setDestination(destination.getRelativeUrl())
self.assertFalse(consistency_message in getMessageList(ipl))
def test_destination_validated(self):
destination = self.portal.organisation_module.newContent(
portal_type='Organisation')
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List',
destination=destination.getRelativeUrl())
consistency_message = 'Destination must be validated'
self.assertTrue(consistency_message in getMessageList(ipl))
destination.validate()
self.assertFalse(consistency_message in getMessageList(ipl))
def test_source_validated(self):
source = self.portal.organisation_module.newContent(
portal_type='Organisation')
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List',
source=source.getRelativeUrl())
consistency_message = 'Source must be validated'
self.assertTrue(consistency_message in getMessageList(ipl))
source.validate()
self.assertFalse(consistency_message in getMessageList(ipl))
def test_lines_existance(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
ipl.confirm()
consistency_message = 'Internal Packing List Line is not defined'
self.assertTrue(consistency_message in getMessageList(ipl))
ipl.newContent(portal_type='Internal Packing List Line')
self.assertFalse(consistency_message in getMessageList(ipl))
class TestVifibInternalPackingListLineConstraint(testVifibMixin):
def getTitle(self):
return "Vifib Internal Packing List Line Constraint checks"
def test_quantity_existence(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
ipl.confirm()
line = ipl.newContent(portal_type='Internal Packing List Line')
consistency_message = 'Property quantity must be defined'
self.assertTrue(consistency_message in getMessageList(line))
line.setQuantity(1.0)
self.assertFalse(consistency_message in getMessageList(line))
def test_resource(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
ipl.confirm()
line = ipl.newContent(portal_type='Internal Packing List Line')
consistency_message = 'Resource must be defined'
self.assertTrue(consistency_message in getMessageList(line))
resource = self.portal.service_module.newContent(portal_type='Service')
line.setResource(resource.getRelativeUrl())
self.assertFalse(consistency_message in getMessageList(line))
def test_aggregate_computer(self):
ipl = self.portal.internal_packing_list_module.newContent(
portal_type='Internal Packing List')
ipl.confirm()
line = ipl.newContent(portal_type='Internal Packing List Line')
consistency_message = 'There should be exactly one Computer present in Items'
self.assertTrue(consistency_message in getMessageList(line))
aggregate = self.portal.computer_module.newContent(portal_type='Computer')
line.setAggregate(aggregate.getRelativeUrl())
self.assertFalse(consistency_message in getMessageList(line))
class TestVifibPurchasePackingListConstraint(testVifibMixin):
def getTitle(self):
......
......@@ -44,7 +44,6 @@ class TestVifibModuleSecurity(testVifibMixin):
'document_module',
'event_module',
'image_module',
'internal_packing_list_module',
'inventory_module',
'knowledge_pad_module',
'meeting_module',
......
##############################################################################
#
# Copyright (c) 2002-2010 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from VifibMixin import testVifibMixin
import uuid
from DateTime import DateTime
import transaction
class TestVifibUserAdmin(testVifibMixin):
"""
Test Vifib User: admin access to the system
"""
def getTitle(self):
return "Test Vifib User Admin security"
def afterSetUp(self):
testVifibMixin.afterSetUp(self)
portal_activities = self.portal.portal_activities
if portal_activities.isSubscribed():
self.activity_tool_was_subscribed = 1
portal_activities.unsubscribe()
def beforeTearDown(self):
if getattr(self, 'activity_tool_was_subscribed', 0):
portal_activities = self.portal.portal_activities
portal_activities.subscribe()
testVifibMixin.beforeTearDown(self)
def test_base_UseradminCanCreateComputer(self):
"""
Check if Administrator should be able to register new computer
"""
login_id = 'test_vifib_user_admin'
self.login(user_name=login_id)
# Try to acceed the person module through restrictedTraverse
# This will test the security of the module
computer_module_id = self.portal.getDefaultModuleId(portal_type='Computer')
computer_module = self.portal.restrictedTraverse(computer_module_id)
# Add computer
computer = computer_module.newContent(portal_type='Computer')
# Edit the computer
computer.edit(
title='Test Vifib Computer',
reference='test_%s' % uuid.uuid4().hex,
)
# Access internal packing list module
internal_packing_list_id = self.portal.getDefaultModuleId(portal_type='Internal Packing List')
internal_packing_list_module = self.portal.restrictedTraverse(internal_packing_list_id)
# Create the IPL
internal_packing_list = internal_packing_list_module.newContent(
portal_type='Internal Packing List',
)
# User has to access his person profile
person_module_id = self.portal.getDefaultModuleId(portal_type='Person')
person_module = self.portal.restrictedTraverse(person_module_id)
person_value = person_module.restrictedTraverse(login_id)
# Edit IPL data
internal_packing_list.edit(
start_date=DateTime(),
source_administration_value=person_value,
destination_value=person_value,
destination_section_value=person_value,
)
# Access service
service_module_id = self.portal.getDefaultModuleId(portal_type='Service')
service_module = self.portal.restrictedTraverse(service_module_id)
service_value = service_module.restrictedTraverse('computer_registration')
# Edit line
internal_packing_list_line = internal_packing_list.newContent(
portal_type='Internal Packing List Line',
resource_value=service_value,
quantity=1,
aggregate_value=computer,
)
# Deliver IPL
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'confirm_action')
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'stop_action')
self.assertEquals('draft', internal_packing_list.getCausalityState())
transaction.commit()
self.stepTic()
transaction.commit()
self.logout()
# Computer registration has to be validated by a Vifib System Administrator
self.login(user_name='test_vifib_admin')
self.assertEquals('draft', internal_packing_list.getCausalityState())
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'deliver_action')
self.logout()
self.login(user_name=login_id)
# Validate computer
computer.portal_workflow.doActionFor(computer, 'validate_action')
# Invalidate Computer
computer.portal_workflow.doActionFor(computer, 'invalidate_action')
def test_base_UseradminCanRequestSoftwareInstallation(self):
login_id = 'test_vifib_user_admin'
self.login(user_name=login_id)
# Try to acceed the person module through restrictedTraverse
# This will test the security of the module
computer_module_id = self.portal.getDefaultModuleId(portal_type='Computer')
computer_module = self.portal.restrictedTraverse(computer_module_id)
# Add computer
computer = computer_module.newContent(portal_type='Computer')
# Edit the computer
computer.edit(
title='Test Vifib Computer',
reference='test_%s' % uuid.uuid4().hex,
)
# Access internal packing list module
internal_packing_list_id = self.portal.getDefaultModuleId(portal_type='Internal Packing List')
internal_packing_list_module = self.portal.restrictedTraverse(internal_packing_list_id)
# Create the IPL
internal_packing_list = internal_packing_list_module.newContent(
portal_type='Internal Packing List',
)
# User has to access his person profile
person_module_id = self.portal.getDefaultModuleId(portal_type='Person')
person_module = self.portal.restrictedTraverse(person_module_id)
person_value = person_module.restrictedTraverse(login_id)
# Edit IPL data
internal_packing_list.edit(
start_date=DateTime(),
source_administration_value=person_value,
destination_value=person_value,
destination_section_value=person_value,
)
# Access service
service_module_id = self.portal.getDefaultModuleId(portal_type='Service')
service_module = self.portal.restrictedTraverse(service_module_id)
service_value = service_module.restrictedTraverse('computer_registration')
# Edit line
internal_packing_list_line = internal_packing_list.newContent(
portal_type='Internal Packing List Line',
resource_value=service_value,
quantity=1,
aggregate_value=computer,
)
# Deliver IPL
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'confirm_action')
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'stop_action')
self.assertEquals('draft', internal_packing_list.getCausalityState())
transaction.commit()
self.stepTic()
transaction.commit()
self.logout()
# Computer registration has to be validated by a Vifib System Administrator
self.login(user_name='test_vifib_admin')
self.assertEquals('draft', internal_packing_list.getCausalityState())
internal_packing_list.portal_workflow.doActionFor(internal_packing_list, 'deliver_action')
self.logout()
self.login(user_name=login_id)
computer.portal_workflow.doActionFor(computer, 'validate_action')
# Access software release to install
software_release_module_id = self.portal.getDefaultModuleId(portal_type='Software Release')
software_release_module = self.portal.restrictedTraverse(software_release_module_id)
software_release = software_release_module.restrictedTraverse('test_software_release')
# User has to access his person profile
person_module_id = self.portal.getDefaultModuleId(portal_type='Person')
person_module = self.portal.restrictedTraverse(person_module_id)
person_value = person_module.restrictedTraverse(login_id)
# Access purchase packing list module
purchase_packing_list_module_id = self.portal.getDefaultModuleId(portal_type='Purchase Packing List')
purchase_packing_list_module = self.portal.restrictedTraverse(purchase_packing_list_module_id)
# Create PPL
purchase_packing_list = purchase_packing_list_module.newContent(
start_date=DateTime(),
specialise='sale_trade_condition_module/vifib_trade_condition',
source='organisation_module/vifib_internet',
source_section='organisation_module/vifib_internet',
# XXX Hardcoded values
destination_value=person_value,
destination_section_value=person_value,
destination_decision_value=person_value,
price_currency='currency_module/EUR',
portal_type='Purchase Packing List')
# Commit the transaction in order to have access to the object
transaction.commit()
# Access service
service_module_id = self.portal.getDefaultModuleId(portal_type='Service')
service_module = self.portal.restrictedTraverse(service_module_id)
service_value = service_module.restrictedTraverse(self.portal.portal_preferences.getPreferredInstanceHostingResource())
# Create PPLL
purchase_packing_list_line = purchase_packing_list.newContent(
portal_type='Purchase Packing List Line',
resource_value=service_value,
aggregate_value_list=[computer, software_release],
quantity=1
)
purchase_packing_list.portal_workflow.doActionFor(purchase_packing_list, 'confirm_action')
......@@ -68,7 +68,6 @@
<key> <string>portal_type_filter</string> </key>
<value>
<list>
<string>Internal Packing List</string>
<string>Purchase Packing List</string>
</list>
</value>
......
573
\ No newline at end of file
574
\ No newline at end of file
......@@ -2,7 +2,6 @@ campaign_module
component_module
document_ingestion_module
event_module
internal_packing_list_module
inventory_module
knowledge_pad_module
meeting_module
......
......@@ -2,7 +2,6 @@ campaign_module
component_module
document_ingestion_module
event_module
internal_packing_list_module
inventory_module
knowledge_pad_module
meeting_module
......
Internal Packing List Line | VifibInternalPackingListLineConstraint
Internal Packing List | VifibInternalPackingListConstraint
Open Sale Order Line | VifibOpenSaleOrderLineConstraint
Open Sale Order | VifibOpenSaleOrderConstraint
Person | VifibPersonConstraint
......
......@@ -16,8 +16,6 @@ Gadget
Gadget Tool
Integration Site
Integration Tool
Internal Packing List
Internal Packing List Module
Inventory
Inventory Module
Knowledge Box
......
......@@ -16,8 +16,6 @@ Gadget
Gadget Tool
Integration Site
Integration Tool
Internal Packing List
Internal Packing List Module
Inventory
Inventory Module
Knowledge Box
......
Internal Packing List | local_permission_vifib_interaction_workflow
Open Sale Order Module | init_vifib_interaction_workflow
Open Sale Order | local_permission_vifib_interaction_workflow
Payment Transaction | local_permission_vifib_interaction_workflow
......
VifibInternalPackingListConstraint
VifibInternalPackingListLineConstraint
VifibPurchasePackingListLineConstraint
VifibPurchasePackingListConstraint
VifibSaleOrderConstraint
......
testVifibPersonSecurity
testVifibCRMSecurity
testVifibModuleSecurity
testVifibUserAdmin
testVifibUserCustomer
testVifibUserDeveloper
testVifibComputerNetworkSecurity
......
......@@ -110,7 +110,6 @@
<string>business_process_module</string>
<string>sale_order_module</string>
<string>sale_packing_list_module</string>
<string>internal_packing_list_module</string>
<string>purchase_order_module</string>
<string>inventory_module</string>
<string>sale_trade_condition_module</string>
......
......@@ -7,10 +7,6 @@
<type>Computer Partition</type>
<workflow>slap_interaction_workflow</workflow>
</chain>
<chain>
<type>Internal Packing List</type>
<workflow>slap_interaction_workflow</workflow>
</chain>
<chain>
<type>Open Sale Order</type>
<workflow>slap_interaction_workflow</workflow>
......
......@@ -68,7 +68,6 @@
<key> <string>portal_type_filter</string> </key>
<value>
<list>
<string>Internal Packing List</string>
<string>Purchase Packing List</string>
<string>Sale Invoice Transaction</string>
<string>Sale Packing List</string>
......
884
\ No newline at end of file
885
\ No newline at end of file
Assignment | slap_interaction_workflow
Computer Partition | slap_interaction_workflow
Internal Packing List | slap_interaction_workflow
Open Sale Order | slap_interaction_workflow
Person | slap_interaction_workflow
Purchase Packing List | slap_interaction_workflow
......
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