Commit b08338c8 authored by Jérome Perrin's avatar Jérome Perrin

Update Configurator Simulation Configuration

Configuration generated by Standard Configurator was not really good. For most divergences, there was no solvers configured, so users could not configure divergences. Now solvers (for packing lists) are configured so that every divergence is automatically accepted, we only expect user to take a decision when quantity or resource is different.
This change was implemented in the rules from `erp5_configurator_trade_template`, but because several simulation tests were relying on the fact that "changing anything would cause a divergence" the previous rules configuration are kept in a new `simulation_test_trade_template`.

Also, security configuration was incomplete, since the introduction of "new simulation", some Unauthorized errors occurred when non-manager users where trying to solve divergence. This is now solved and exercised in the integration tests we run on auto-configurated instance. 

The configuration was obsolete, nowadays we use different business processes for each use case, this configuration was still using only one business process for both sale and purchase, now we use two and improve the accounting configuration, to use accounts defined in supply line.

Some others small improvements were made, for example now we can configure the delivery solver to use for a split solver once and for all in the solver and user does not have to choose each time.

What not updated this time:
 - divergences on Invoice Lines: this is probably same as on Packing List before these changes
 - rules are still configured with ad-hoc scripts and not based on trade phase categories.

See merge request nexedi/erp5!1221
parents 349258e5 95e01e27
Pipeline #10959 failed with stage
in 0 seconds
......@@ -64,6 +64,7 @@ class AdvancedPurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLO
portal = self.getPortalObject()
business_configuration = self.getBusinessConfigurationValue()
business_process_id = \
business_configuration.getGlobalConfigurationAttr('purchase_business_process_id') or\
business_configuration.getGlobalConfigurationAttr('business_process_id')
organisation_id = \
......
......@@ -65,6 +65,7 @@ class AdvancedSaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObjec
business_configuration = self.getBusinessConfigurationValue()
business_process_id = \
business_configuration.getGlobalConfigurationAttr('sale_business_process_id') or\
business_configuration.getGlobalConfigurationAttr('business_process_id')
organisation_id = \
......
......@@ -71,7 +71,14 @@ class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
business_configuration = self.getBusinessConfigurationValue()
business_configuration.setGlobalConfigurationAttr(\
business_process_id=business_process.getId())
# XXX for the standard cases, also set configuration attributes that
# Sale/Purchase Configurator Item will use.
if self.getReference() == 'default_erp5_sale_business_process':
business_configuration.setGlobalConfigurationAttr(
sale_business_process_id=business_process.getId())
elif self.getReference() == 'default_erp5_purchase_business_process':
business_configuration.setGlobalConfigurationAttr(
purchase_business_process_id=business_process.getId())
business_process_dict = self._getBusinessProcessDict()
int_index = 0
......@@ -81,7 +88,7 @@ class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
title = path_dict.pop('title')
trade_phase = path_dict.pop('trade_phase')
trade_date = path_dict.pop('trade_date')
for key in path_dict:
for key in list(path_dict):
if path_dict[key] is None:
path_dict.pop(key)
self._addTradeModelPath(business_process=business_process,
......@@ -99,9 +106,9 @@ class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
delivery_builder = link_dict.pop('delivery_builder', None)
predecessor = link_dict.pop('predecessor', None)
successor = link_dict.pop('successor', None)
for key in path_dict:
if path_dict[key] is None:
path_dict.pop(key)
for key in list(link_dict):
if link_dict[key] is None:
link_dict.pop(key)
self._addBusinessLink(business_process=business_process,
title=title,
......@@ -126,8 +133,15 @@ class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
def _addTradeModelPath(self, business_process, title, trade_phase,
trade_date, **kw):
def _addTradeModelPath(
self,
business_process,
title,
trade_phase,
trade_date,
membership_criterion_base_category_list=None,
membership_criterion_category_list=None,
**kw):
""" Add a trade model path to the business process.
"""
reference = "TMP-%s" % "-".join(title.upper().strip().split(" "))
......@@ -142,6 +156,13 @@ class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
if trade_date is not None:
trade_model_path.setTradeDate('trade_phase/%s' % trade_date)
if membership_criterion_base_category_list:
trade_model_path.setMembershipCriterionBaseCategoryList(
membership_criterion_base_category_list.split(","))
if membership_criterion_category_list:
trade_model_path.setMembershipCriterionCategoryList(
membership_criterion_category_list.split(","))
def _addBusinessLink(self, business_process, title, trade_phase, predecessor,
successor, delivery_builder, **kw):
link_id = "%s_link" % "_".join(title.lower().strip().split(" "))
......
......@@ -36,7 +36,7 @@ from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
class PurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Rules. """
""" Setup Purchase Trade Conditions. """
meta_type = 'ERP5 Purchase Trade Condition Configurator Item'
portal_type = 'Purchase Trade Condition Configurator Item'
......@@ -64,6 +64,7 @@ class PurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
portal = self.getPortalObject()
business_configuration = self.getBusinessConfigurationValue()
business_process_id = \
business_configuration.getGlobalConfigurationAttr('purchase_business_process_id') or\
business_configuration.getGlobalConfigurationAttr('business_process_id')
organisation_id = \
......
......@@ -36,7 +36,7 @@ from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
class SaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Rules. """
""" Setup Sale Trade Conditions. """
meta_type = 'ERP5 Sale Trade Condition Configurator Item'
portal_type = 'Sale Trade Condition Configurator Item'
......@@ -65,6 +65,7 @@ class SaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
business_configuration = self.getBusinessConfigurationValue()
business_process_id = \
business_configuration.getGlobalConfigurationAttr('sale_business_process_id') or \
business_configuration.getGlobalConfigurationAttr('business_process_id')
organisation_id = \
......
......@@ -551,13 +551,8 @@ class TestConfiguratorItem(TestLiveConfiguratorWorkflowMixin):
self.assertEqual(invoicing_path.getTradePhase(), 'trade/invoicing')
self.assertEqual(invoicing_path.getTradeDate(), 'trade_phase/trade/delivery')
self.assertEqual(invoicing_path.getTestMethodId(), None)
accounting_credit_path = getattr(business_process, "accounting_credit_path", None)
self.assertNotEquals(accounting_credit_path, None)
self.assertEqual(accounting_credit_path.getEfficiency(), -1.0)
self.assertEqual(accounting_credit_path.getTradePhase(), 'trade/accounting')
self.assertEqual(accounting_credit_path.getTradeDate(), 'trade_phase/trade/invoicing')
self.assertEqual(accounting_credit_path.getTestMethodId(), "isAccountingMovementType")
self.assertEqual(invoicing_path.getMembershipCriterionBaseCategoryList(), [])
self.assertEqual(invoicing_path.getMembershipCriterionCategoryList(), [])
accounting_debit_path = getattr(business_process, "accounting_debit_path", None)
self.assertNotEquals(accounting_debit_path, None)
......@@ -565,6 +560,25 @@ class TestConfiguratorItem(TestLiveConfiguratorWorkflowMixin):
self.assertEqual(accounting_debit_path.getTradePhase(), 'trade/accounting')
self.assertEqual(accounting_debit_path.getTradeDate(), 'trade_phase/trade/invoicing')
self.assertEqual(accounting_debit_path.getTestMethodId(), "isAccountingMovementType")
self.assertEqual(
accounting_debit_path.getMembershipCriterionBaseCategoryList(),
['trade_phase'])
self.assertEqual(
accounting_debit_path.getMembershipCriterionCategoryList(),
['trade_phase/trade/invoicing', 'trade_phase/trade/delivery',])
accounting_credit_path = getattr(business_process, "accounting_credit_path", None)
self.assertNotEquals(accounting_credit_path, None)
self.assertEqual(accounting_credit_path.getEfficiency(), -1.0)
self.assertEqual(accounting_credit_path.getTradePhase(), 'trade/accounting')
self.assertEqual(accounting_credit_path.getTradeDate(), 'trade_phase/trade/invoicing')
self.assertEqual(accounting_credit_path.getTestMethodId(), "isAccountingMovementType")
self.assertEqual(
accounting_credit_path.getMembershipCriterionBaseCategoryList(),
['trade_phase'])
self.assertEqual(
accounting_credit_path.getMembershipCriterionCategoryList(),
['trade_phase/trade/delivery',])
order_link = getattr(business_process, "order_link", None)
self.assertNotEquals(order_link, None)
......
......@@ -33,6 +33,9 @@ if business_template is not None:
assignment.updateLocalRolesOnSecurityGroups()
print "\tOpen (assignment): ", assignment.getRelativeUrl()
for solver_type in context.portal_solvers.objectValues():
solver_type.updateLocalRolesOnSecurityGroups()
for gadget in context.portal_gadgets.objectValues():
if gadget.getValidationState() == 'invisible':
gadget.visible()
......
configuration_save = context.restrictedTraverse(configuration_save_url)
# business processes
configuration_save.addConfigurationItem("Business Process Configurator Item",
title="Default Trade Business Process" ,
configuration_spreadsheet_data = getattr(context, "standard_business_process.ods").data,
reference="default_erp5_business_process")
configuration_save.addConfigurationItem("Business Process Configurator Item",
title="Default Sales Business Process" ,
configuration_spreadsheet_data = getattr(context, "standard_sale_business_process.ods").data,
reference="default_erp5_sale_business_process")
configuration_save.addConfigurationItem("Business Process Configurator Item",
title="Default Purchase Business Process" ,
configuration_spreadsheet_data = getattr(context, "standard_purchase_business_process.ods").data,
reference="default_erp5_purchase_business_process")
# setup Sale Trade Condition
configuration_save.addConfigurationItem("Sale Trade Condition Configurator Item",
title="General Sale Trade Condition",
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>standard_purchase_business_process.ods</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>standard_sale_business_process.ods</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Solver Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</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>Associate</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>automatic_solver</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>delivery_solver/portal_solvers/FIFO Delivery Solver</string>
<string>conflicting_solver/portal_solvers/Accept Solver</string>
<string>conflicting_solver/portal_solvers/Adopt Solver</string>
<string>conflicting_solver/portal_solvers/Quantity Cancel Solver</string>
<string>conflicting_solver/portal_solvers/Quantity Split Move Solver</string>
<string>conflicting_solver/portal_solvers/Quantity Split Solver</string>
<string>conflicting_solver/portal_solvers/Simple Quantity Split Solver</string>
<string>conflicting_solver/portal_solvers/Trade Model Solver</string>
<string>conflicting_solver/portal_solvers/Unify Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>configuration_form_id</string> </key>
<value> <string>GenericSolver_viewConfigurationFormBox</string> </value>
</item>
<item>
<key> <string>configuration_groupable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>configuration_property_list</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The Accept Solver solves the divergence by accepting the decision and updating a simulation movement.</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addAcceptSolver</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>target_solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Automatic Accept Solver</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>line_exclusive</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>line_groupable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Solver Type</string> </value>
</item>
<item>
<key> <string>process_exclusive</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>solver_action_title</string> </key>
<value> <string>Accept new value automatically</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>aggregate</string>
<string>base_application</string>
<string>base_contribution</string>
<string>delivery_mode</string>
<string>description</string>
<string>destination</string>
<string>destination_account</string>
<string>destination_administration</string>
<string>destination_decision</string>
<string>destination_function</string>
<string>destination_payment</string>
<string>destination_project</string>
<string>destination_section</string>
<string>incoterm</string>
<string>ledger</string>
<string>price</string>
<string>price_currency</string>
<string>resource</string>
<string>source</string>
<string>source_account</string>
<string>source_administration</string>
<string>source_decision</string>
<string>source_function</string>
<string>source_payment</string>
<string>source_project</string>
<string>source_section</string>
<string>start_date</string>
<string>stop_date</string>
<string>use</string>
<string>variation_category_list</string>
<string>variation_property_dict</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>AcceptSolver</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="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<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="6" aka="AAAAAAAAAAY=">
<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="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>action_permission</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>1</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>configuration</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Configuration</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Solver_viewConfiguration</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>action_permission</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>2</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/TargetSolver_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Solver Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</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>Associate</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>allowed_content_types</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>automatic_solver</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>base_category_list</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>delivery_solver/portal_solvers/FIFO Delivery Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>configuration_form_id</string> </key>
<value> <string>QuantitySplitSolver_viewConfigurationFormBox</string> </value>
</item>
<item>
<key> <string>configuration_groupable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>configuration_property_list</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The Quantity Split Solver splits a simulation movement into multiple simulation movements in order to defer the delivery of remaining quantities. This "Simple" version does not allow to select the delivery solver and uses FIFO implicitly.</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addQuantitySplitSolver</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>target_solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>hidden_content_type_list</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Simple Quantity Split Solver</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>int_index</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>line_exclusive</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>line_groupable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>membership_criterion_category</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Solver Type</string> </value>
</item>
<item>
<key> <string>process_exclusive</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>property_sheet_list</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>solver_action_title</string> </key>
<value> <string>Split and Defer</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>tested_property</string> </key>
<value>
<tuple>
<string>quantity</string>
<string>quantity_unit</string>
</tuple>
</value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>QuantitySplitSolver</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="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<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="6" aka="AAAAAAAAAAY=">
<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="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>action_permission</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>1</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>configuration</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Configuration</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Solver_viewConfiguration</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Action Information" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>action_permission</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>float_index</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>2</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>reference</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/TargetSolver_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -2,12 +2,14 @@
<portal_type id="Solver Process">
<item>Accept Solver</item>
<item>Adopt Solver</item>
<item>Automatic Accept Solver</item>
<item>FIFO Delivery Solver</item>
<item>LIFO Delivery Solver</item>
<item>Minimise Price Delivery Solver</item>
<item>Production Reduction Solver</item>
<item>Quantity Split Move Solver</item>
<item>Quantity Split Solver</item>
<item>Simple Quantity Split Solver</item>
<item>Trade Model Solver</item>
<item>Unify Solver</item>
</portal_type>
......
......@@ -7,6 +7,10 @@
<type>Adopt Solver</type>
<workflow>solver_workflow</workflow>
</chain>
<chain>
<type>Automatic Accept Solver</type>
<workflow>solver_workflow</workflow>
</chain>
<chain>
<type>Production Reduction Solver</type>
<workflow>solver_workflow</workflow>
......@@ -19,6 +23,10 @@
<type>Quantity Split Solver</type>
<workflow>solver_workflow</workflow>
</chain>
<chain>
<type>Simple Quantity Split Solver</type>
<workflow>solver_workflow</workflow>
</chain>
<chain>
<type>Trade Model Solver</type>
<workflow>solver_workflow</workflow>
......
......@@ -2,6 +2,8 @@ portal_solvers/Accept Solver
portal_solvers/Accept Solver/*
portal_solvers/Adopt Solver
portal_solvers/Adopt Solver/*
portal_solvers/Automatic Accept Solver
portal_solvers/Automatic Accept Solver/*
portal_solvers/FIFO Delivery Solver
portal_solvers/FIFO Delivery Solver/*
portal_solvers/LIFO Delivery Solver
......@@ -16,6 +18,8 @@ portal_solvers/Quantity Split Move Solver
portal_solvers/Quantity Split Move Solver/*
portal_solvers/Quantity Split Solver
portal_solvers/Quantity Split Solver/*
portal_solvers/Simple Quantity Split Solver
portal_solvers/Simple Quantity Split Solver/*
portal_solvers/Trade Model Solver
portal_solvers/Trade Model Solver/*
portal_solvers/Unify Solver
......
Solver Process | Accept Solver
Solver Process | Adopt Solver
Solver Process | Automatic Accept Solver
Solver Process | FIFO Delivery Solver
Solver Process | LIFO Delivery Solver
Solver Process | Minimise Price Delivery Solver
Solver Process | Production Reduction Solver
Solver Process | Quantity Split Move Solver
Solver Process | Quantity Split Solver
Solver Process | Simple Quantity Split Solver
Solver Process | Trade Model Solver
Solver Process | Unify Solver
\ No newline at end of file
Accept Solver | solver_workflow
Adopt Solver | solver_workflow
Automatic Accept Solver | solver_workflow
Production Reduction Solver | solver_workflow
Quantity Cancel Solver | solver_workflow
Quantity Split Solver | solver_workflow
Simple Quantity Split Solver | solver_workflow
Trade Model Solver | solver_workflow
Unify Solver | solver_workflow
\ No newline at end of file
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>aggregate_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>aggregate</string>
</tuple>
</value>
<value> <string>aggregate</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......@@ -38,11 +46,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>base_application</string>
</tuple>
</value>
<value> <string>base_application</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......@@ -38,11 +46,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>base_contribution</string>
</tuple>
</value>
<value> <string>base_contribution</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -38,11 +38,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>delivery_mode</string>
</tuple>
</value>
<value> <string>delivery_mode</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>description_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>description</string>
</tuple>
</value>
<value> <string>description</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_account_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_account</string>
</tuple>
</value>
<value> <string>destination_account</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_administration_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_administration</string>
</tuple>
</value>
<value> <string>destination_administration</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_decision_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_decision</string>
</tuple>
</value>
<value> <string>destination_decision</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_function_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_function</string>
</tuple>
</value>
<value> <string>destination_function</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_payment_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_payment</string>
</tuple>
</value>
<value> <string>destination_payment</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_project_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_project</string>
</tuple>
</value>
<value> <string>destination_project</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_section_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination_section</string>
</tuple>
</value>
<value> <string>destination_section</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>destination_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>destination</string>
</tuple>
</value>
<value> <string>destination</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -38,11 +38,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>incoterm</string>
</tuple>
</value>
<value> <string>incoterm</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......@@ -34,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>ledger</string>
</tuple>
</value>
<value> <string>ledger</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......@@ -38,11 +46,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>price_currency</string>
</tuple>
</value>
<value> <string>price_currency</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -73,11 +73,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>price</string>
</tuple>
</value>
<value> <string>price</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -49,10 +49,17 @@
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Quantity Split Solver</string>
<string>solver/portal_solvers/Accept Solver</string>
<string>solver/portal_solvers/Simple Quantity Split Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>quantity_tester</string> </value>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>resource_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>resource</string>
</tuple>
</value>
<value> <string>resource</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_account_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_account</string>
</tuple>
</value>
<value> <string>source_account</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_administration_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_administration</string>
</tuple>
</value>
<value> <string>source_administration</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_decision_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_decision</string>
</tuple>
</value>
<value> <string>source_decision</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_function_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_function</string>
</tuple>
</value>
<value> <string>source_function</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_payment_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_payment</string>
</tuple>
</value>
<value> <string>source_payment</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_project_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_project</string>
</tuple>
</value>
<value> <string>source_project</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_section_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source_section</string>
</tuple>
</value>
<value> <string>source_section</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>source_tester</string> </value>
......@@ -28,11 +42,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>source</string>
</tuple>
</value>
<value> <string>source</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......@@ -32,6 +40,10 @@
<key> <string>portal_type</string> </key>
<value> <string>Specialise Divergence Tester</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value> <string>specialise</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Business Process must be consistent to make good prevision</string> </value>
......
......@@ -39,7 +39,7 @@
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Unify Solver</string>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
......@@ -63,11 +63,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>start_date</string>
</tuple>
</value>
<value> <string>start_date</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -35,6 +35,20 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>stop_date_tester</string> </value>
......@@ -49,11 +63,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>stop_date</string>
</tuple>
</value>
<value> <string>stop_date</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -18,6 +18,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Automatic Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......@@ -38,11 +46,7 @@
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>use</string>
</tuple>
</value>
<value> <string>use</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......
......@@ -35,6 +35,14 @@
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>solver/portal_solvers/Accept Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
......
category_list = context.TradeModelPath_getAccountingDynamicDestinationCategoryListWithoutAnalytic(movement)
function = movement.getDestinationFunction(
base=True) or context.getDestinationFunction(base=True)
if function:
category_list.append(function)
funding = movement.getDestinationFunding(
base=True) or context.getDestinationFunding(base=True)
if funding:
category_list.append(funding)
project = movement.getDestinationProject(
base=True) or context.getDestinationProject(base=True)
if project:
category_list.append(project)
return category_list
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>movement</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>TradeModelPath_getAccountingDynamicDestinationCategoryListWithAnalytic</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
portal = context.getPortalObject()
category_list = [
c for c in [
movement.getDestinationSection(base=True),
movement.getDestinationPayment(base=True)
] if c
]
account = movement.getDestinationAccount() or context.getDestination()
if not account:
# try to find from predicates
resource = movement.getResourceValue()
if resource is not None:
account = next(
(
predicate.getDestinationAccount()
for predicate in portal.portal_domains.searchPredicateList(
context=movement,
portal_type='Purchase Supply Line',
)
if predicate.getDestinationAccount()), None)
if account:
category_list.append('destination/%s' % account)
return category_list
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>movement</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>TradeModelPath_getAccountingDynamicDestinationCategoryListWithoutAnalytic</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
category_list = context.TradeModelPath_getAccountingDynamicSourceCategoryListWithoutAnalytic(movement)
function = movement.getSourceFunction(base=True) or context.getSourceFunction(
base=True)
if function:
category_list.append(function)
funding = movement.getSourceFunding(base=True) or context.getSourceFunding(
base=True)
if funding:
category_list.append(funding)
project = movement.getSourceProject(base=True) or context.getSourceProject(
base=True)
if project:
category_list.append(project)
return category_list
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>movement</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>TradeModelPath_getAccountingDynamicSourceCategoryListWithAnalytic</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
portal = context.getPortalObject()
category_list = [
c for c in [
movement.getSourceSection(base=True),
movement.getSourcePayment(base=True)
] if c
]
account = movement.getSourceAccount() or context.getSource()
if not account:
# try to find from predicates
resource = movement.getResourceValue()
if resource is not None:
account = next(
(
predicate.getSourceAccount()
for predicate in portal.portal_domains.searchPredicateList(
context=movement,
portal_type='Sale Supply Line',
)
if predicate.getSourceAccount()), None)
if account:
category_list.append('source/%s' % account)
return category_list
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>movement</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>TradeModelPath_getAccountingDynamicSourceCategoryListWithoutAnalytic</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -7,7 +7,7 @@ erp5_trade
erp5_apparel
erp5_project
erp5_configurator_standard_solver
erp5_configurator_standard_trade_template
erp5_simulation_test_trade_template
erp5_simulation_test
erp5_administration
erp5_dummy_movement
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_dialog_mode_solver_decision_start_date</string>
<string>my_dialog_mode_solver_decision_stop_date</string>
<string>my_dialog_mode_solver_decision_delivery_solver</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Default Simulation Field Library</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>css_class</string>
<string>default</string>
<string>external_validator</string>
<string>hidden</string>
<string>items</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_dialog_mode_solver_decision_delivery_solver</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</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>css_class</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>external_validator</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>hidden</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</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>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_radio_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3</int> </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>Priority</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: "hidden_label" if here.SolverDecision_getDefaultDeliverySolverIfUnique() else ""</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'delivery_solver\') or here.SolverDecision_getDefaultDeliverySolverIfUnique()</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.SolverDecision_getDefaultDeliverySolverIfUnique()</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:[(here.Base_translateString(x.getSolverActionTitle() or \'\'), x.getId()) for x in here.searchDeliverySolverList()]</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_dialog_mode_solver_decision_start_date</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_date</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>New Shipping Date</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'start_date\', here.getDeliveryValue().getDeliveryValue().getStartDate())</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_dialog_mode_solver_decision_stop_date</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_date</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>New Delivery Date</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'stop_date\', here.getDeliveryValue().getDeliveryValue().getStopDate())</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
request = context.REQUEST
from Products.ERP5Type.Message import translateString
listbox = request.get('listbox')
line_list = context.Delivery_getSolverDecisionList(listbox=listbox)
if len(line_list) == 0:
kw["keep_items"] = {'portal_status_message': translateString("Workflow state may have been updated by other user. Please try again.")}
return context.Base_redirect(form_id, **kw)
for listbox_key in listbox:
listbox_dict = listbox[listbox_key]
line = [x for x in line_list if x.getPath() == listbox_key][0]
for listbox_dict in listbox:
line = [x for x in line_list if x.getPath() == listbox_dict['listbox_key']][0]
uid = line.getUid()
for prop in ('solver', 'solver_configuration', 'delivery_solver', 'comment',):
value = listbox_dict.get(prop, None)
......
......@@ -9,19 +9,7 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -34,7 +22,7 @@
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
......@@ -51,10 +39,6 @@
<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>
......@@ -62,12 +46,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -76,14 +54,6 @@
<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>
......@@ -91,33 +61,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_date</string> </value>
<value> <string>my_dialog_mode_solver_decision_start_date</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>New Shipping Date</string> </value>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
</dictionary>
</value>
......@@ -125,30 +75,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'start_date\', here.getDeliveryValue().getDeliveryValue().getStartDate())</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,19 +9,7 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -34,7 +22,7 @@
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
......@@ -51,10 +39,6 @@
<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>
......@@ -62,12 +46,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -76,14 +54,6 @@
<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>
......@@ -91,33 +61,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_date</string> </value>
<value> <string>my_dialog_mode_solver_decision_stop_date</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>New Delivery Date</string> </value>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
</dictionary>
</value>
......@@ -125,30 +75,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'stop_date\', here.getDeliveryValue().getDeliveryValue().getStopDate())</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,20 +9,7 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>items</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -35,7 +22,7 @@
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
......@@ -52,10 +39,6 @@
<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>
......@@ -63,12 +46,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -77,20 +54,6 @@
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</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>
......@@ -98,41 +61,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_radio_field</string> </value>
<value> <string>my_dialog_mode_solver_decision_delivery_solver</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3</int> </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>Priority</string> </value>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
</dictionary>
</value>
......@@ -140,43 +75,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'delivery_solver\', None)</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:[(here.Base_translateString(x.getSolverActionTitle() or \'\'), x.getId()) for x in here.searchDeliverySolverList()]</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,20 +9,7 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>items</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -35,7 +22,7 @@
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
......@@ -52,10 +39,6 @@
<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>
......@@ -63,12 +46,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -77,20 +54,6 @@
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</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>
......@@ -98,41 +61,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_radio_field</string> </value>
<value> <string>my_dialog_mode_solver_decision_delivery_solver</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>items</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3</int> </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>Priority</string> </value>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
</dictionary>
</value>
......@@ -140,43 +75,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'delivery_solver\', None)</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:[(here.Base_translateString(x.getSolverActionTitle() or \'\'), x.getId()) for x in here.searchDeliverySolverList()]</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,19 +9,7 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -34,7 +22,7 @@
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
......@@ -51,10 +39,6 @@
<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>
......@@ -62,12 +46,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -76,14 +54,6 @@
<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>
......@@ -91,33 +61,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_date</string> </value>
<value> <string>my_dialog_mode_solver_decision_start_date</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>New Shipping Date</string> </value>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
</dictionary>
</value>
......@@ -125,30 +75,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'start_date\', here.getDeliveryValue().getDeliveryValue().getStartDate())</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -9,19 +9,7 @@
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>external_validator</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
<list/>
</value>
</item>
<item>
......@@ -34,7 +22,7 @@
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>Input is required but no input given.</string> </value>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
......@@ -51,10 +39,6 @@
<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>
......@@ -62,12 +46,6 @@
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
......@@ -76,14 +54,6 @@
<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>
......@@ -91,33 +61,13 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_date</string> </value>
<value> <string>my_dialog_mode_solver_decision_stop_date</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>New Delivery Date</string> </value>
<value> <string>Base_viewSimulationFieldLibrary</string> </value>
</item>
</dictionary>
</value>
......@@ -125,30 +75,4 @@
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python:here.getConfigurationPropertyDict().get(\'stop_date\', here.getDeliveryValue().getDeliveryValue().getStopDate())</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Method" module="Products.Formulator.MethodField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>method_name</string> </key>
<value> <string>Base_validateDialogConfirmation</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# type: () -> Optional[str]
"""Returns the id of delivery solver if there's only one configured
on this solver, None otherwise.
"""
delivery_solver_list = context.searchDeliverySolverList()
if len(delivery_solver_list) == 1:
return delivery_solver_list[0].getId()
......@@ -54,7 +54,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SolverDecision_getDeliverySolverList</string> </value>
<value> <string>SolverDecision_getDefaultDeliverySolverIfUnique</string> </value>
</item>
</dictionary>
</pickle>
......
try:
return [('Do Nothing', '')] + [x for x in context.getPortalObject().portal_solvers.getDeliverySolverTranslatedItemList() \
if x[1] in context.getSolverValue().getDeliverySolverList()]
except AttributeError: # FIXME too wide
return [('Do Nothing', '')]
......@@ -3,6 +3,6 @@ from Products.PythonScripts.standard import html_quote
# even if we have several divergence testers, the first
# one is enough for displaying the title.
tester = context.getCausalityValue()
return '<div>%s</div><div><em>(%s)</em></div>' % (
return '<div>%s</div><div><em>%s</em></div>' % (
html_quote(tester.getTranslatedTitle()),
context.getExplanationMessage())
......@@ -30,6 +30,11 @@
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string>
</tuple>
</value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Delivery Builder" 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>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>delivery_after_generation_script_id</string> </key>
<value> <string>PurchasePackingList_copyOrderProperties</string> </value>
</item>
<item>
<key> <string>delivery_cell_collect_order</string> </key>
<value>
<tuple>
<string>VariantMovementGroup</string>
</tuple>
</value>
</item>
<item>
<key> <string>delivery_cell_portal_type</string> </key>
<value> <string>Internal Packing List Cell</string> </value>
</item>
<item>
<key> <string>delivery_cell_separate_order</string> </key>
<value>
<tuple>
<string>calculateAveragePrice</string>
<string>calculateAddQuantity</string>
</tuple>
</value>
</item>
<item>
<key> <string>delivery_collect_order</string> </key>
<value>
<tuple>
<string>OrderMovementGroup</string>
<string>DateMovementGroup</string>
<string>PathMovementGroup</string>
<string>SectionPathMovementGroup</string>
<string>PriceCurrencyMovementGroup</string>
<string>DecisionPathMovementGroup</string>
<string>AdministrationPathMovementGroup</string>
</tuple>
</value>
</item>
<item>
<key> <string>delivery_line_collect_order</string> </key>
<value>
<tuple>
<string>ResourceMovementGroup</string>
<string>AggregateMovementGroup</string>
<string>BaseVariantMovementGroup</string>
<string>CausalityAssignmentMovementGroup</string>
</tuple>
</value>
</item>
<item>
<key> <string>delivery_line_portal_type</string> </key>
<value> <string>Internal Packing List Line</string> </value>
</item>
<item>
<key> <string>delivery_module</string> </key>
<value> <string>internal_packing_list_module</string> </value>
</item>
<item>
<key> <string>delivery_portal_type</string> </key>
<value> <string>Internal Packing List</string> </value>
</item>
<item>
<key> <string>delivery_select_method_id</string> </key>
<value> <string>DeliveryBuilder_selectConfirmedDeliveryList</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>internal_packing_list_builder</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Delivery Builder</string> </value>
</item>
<item>
<key> <string>simulation_select_method_id</string> </key>
<value> <string>InternalOrder_selectMovement</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Internal Packing List Builder</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="Base Variant Movement Group" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>collect_order_group/line</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>base_variant_movement_group_in_line</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Variant Movement Group</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>base_variant_movement_group_in_line</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Category Movement Group" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>divergence_scope/category</string>
<string>collect_order_group/delivery</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>category_movement_group_on_delivery</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Movement Group</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>delivery_mode</string>
<string>incoterm</string>
<string>source</string>
<string>destination</string>
<string>source_section</string>
<string>destination_section</string>
<string>source_decision</string>
<string>destination_decision</string>
<string>source_administration</string>
<string>destination_administration</string>
<string>source_project</string>
<string>destination_project</string>
<string>source_payment</string>
<string>destination_payment</string>
<string>price_currency</string>
<string>specialise</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>category_movement_group_on_delivery</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Category Movement Group" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>divergence_scope/category</string>
<string>collect_order_group/line</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>category_movement_group_on_line</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Movement Group</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>resource</string>
<string>aggregate</string>
<string>quantity_unit</string>
<string>source_account</string>
<string>destination_account</string>
<string>source_function</string>
<string>destination_function</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>category_movement_group_on_line</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Causality Assignment Movement Group" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>collect_order_group/line</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>causality_assignment_movement_group_on_line</string> </value>
</item>
<item>
<key> <string>int_index</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Causality Assignment Movement Group</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>causality_assignment_movement_group_on_line</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
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