diff --git a/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view.xml index 28a36a61965772be4ef48ca3946aa491bd43a249..3d0f69e90a7d42f26d06b04aca627532a1680399 100644 --- a/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view.xml +++ b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view.xml @@ -102,6 +102,7 @@ <string>my_reference</string> <string>my_version</string> <string>my_trade_phase_list</string> + <string>my_same_total_quantity</string> </list> </value> </item> diff --git a/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view/my_same_total_quantity.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view/my_same_total_quantity.xml new file mode 100644 index 0000000000000000000000000000000000000000..6e10b01213f9af9ff59807f54980c4789c404311 --- /dev/null +++ b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Rule_view/my_same_total_quantity.xml @@ -0,0 +1,84 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_same_total_quantity</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_checkbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfiguration.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfiguration.xml similarity index 100% rename from bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfiguration.xml rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfiguration.xml diff --git a/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfiguration/my_configuration.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfiguration/my_configuration.xml similarity index 100% rename from bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfiguration/my_configuration.xml rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfiguration/my_configuration.xml diff --git a/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfigurationFormBox.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfigurationFormBox.xml new file mode 100644 index 0000000000000000000000000000000000000000..c379c57856a8e1813d7fd44144e50043cfb70400 --- /dev/null +++ b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Solver_viewConfigurationFormBox.xml @@ -0,0 +1,122 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5Form" module="Products.ERP5Form.Form"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string></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> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Solver_viewConfigurationFormBox</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>Solver_viewConfiguration</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>embedded_form_render</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>1</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>Configuration</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> diff --git a/bt5/erp5_simulation/bt/revision b/bt5/erp5_simulation/bt/revision index 2efea5198bec85fb12bc22ec549bd4db99be6de5..a3090d211bbafbc4b28678d4a9207c284ae447d9 100644 --- a/bt5/erp5_simulation/bt/revision +++ b/bt5/erp5_simulation/bt/revision @@ -1 +1 @@ -167 \ No newline at end of file +168 \ No newline at end of file diff --git a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Accept%20Solver.xml b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Accept%20Solver.xml index 04c0b83d7061de82e69b3d6b16bb558d18492110..7adf0de5341f55da05c1be636e420758af72bf0c 100644 --- a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Accept%20Solver.xml +++ b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Accept%20Solver.xml @@ -90,7 +90,7 @@ </item> <item> <key> <string>configuration_form_id</string> </key> - <value> <string>Solver_viewConfigurationFormBox</string> </value> + <value> <string>GenericSolver_viewConfigurationFormBox</string> </value> </item> <item> <key> <string>configuration_property_list</string> </key> diff --git a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Adopt%20Solver.xml b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Adopt%20Solver.xml index fe8b9e4722b0d5e761c0c00894ed82ecbbc344b3..a69770aab37b61def7af264cc1a93fd495900f83 100644 --- a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Adopt%20Solver.xml +++ b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Adopt%20Solver.xml @@ -109,7 +109,7 @@ </item> <item> <key> <string>configuration_form_id</string> </key> - <value> <string>Solver_viewConfigurationFormBox</string> </value> + <value> <string>GenericSolver_viewConfigurationFormBox</string> </value> </item> <item> <key> <string>description</string> </key> diff --git a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Quantity%20Cancel%20Solver.xml b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Quantity%20Cancel%20Solver.xml index 5152ed72743015a3a844301e5d38c4e15ded7ef6..eab836ecd9248e4f39e5b8e2329ea465a8c91963 100644 --- a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Quantity%20Cancel%20Solver.xml +++ b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Quantity%20Cancel%20Solver.xml @@ -90,7 +90,7 @@ </item> <item> <key> <string>configuration_form_id</string> </key> - <value> <string>Solver_viewConfigurationFormBox</string> </value> + <value> <string>GenericSolver_viewConfigurationFormBox</string> </value> </item> <item> <key> <string>configuration_property_list</string> </key> diff --git a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Trade%20Model%20Solver.xml b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Trade%20Model%20Solver.xml index 1d50a9912ee84530a8c31abf3c05947e63d1eec3..c9ad896087a6b4152d095c4768fa7c96b983291f 100644 --- a/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Trade%20Model%20Solver.xml +++ b/bt5/erp5_simulation_test/PathTemplateItem/portal_solvers/Trade%20Model%20Solver.xml @@ -111,7 +111,7 @@ </item> <item> <key> <string>configuration_form_id</string> </key> - <value> <string>Solver_viewConfigurationFormBox</string> </value> + <value> <string>GenericSolver_viewConfigurationFormBox</string> </value> </item> <item> <key> <string>configuration_groupable</string> </key> diff --git a/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfigurationFormBox.xml b/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/GenericSolver_viewConfigurationFormBox.xml similarity index 97% rename from bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfigurationFormBox.xml rename to bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/GenericSolver_viewConfigurationFormBox.xml index 38de8300d73cf553fea0dc0d348ba4fb3e260ecd..0f8cc5fc29c711e29c381e48746f3e391a0bb0a1 100644 --- a/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfigurationFormBox.xml +++ b/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/GenericSolver_viewConfigurationFormBox.xml @@ -80,7 +80,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>Solver_viewConfigurationFormBox</string> </value> + <value> <string>GenericSolver_viewConfigurationFormBox</string> </value> </item> <item> <key> <string>method</string> </key> diff --git a/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfigurationFormBox/my_tested_property_list.xml b/bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/GenericSolver_viewConfigurationFormBox/my_tested_property_list.xml similarity index 100% rename from bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/Solver_viewConfigurationFormBox/my_tested_property_list.xml rename to bt5/erp5_simulation_test/SkinTemplateItem/portal_skins/erp5_simulation_test/GenericSolver_viewConfigurationFormBox/my_tested_property_list.xml diff --git a/product/ERP5Type/dynamic/lazy_class.py b/product/ERP5Type/dynamic/lazy_class.py index 23102af65bcf97fae0b82aba96099ac4907b8d12..78d8aa81984cf6099bdbdeabaf0ddaebc825a9c5 100644 --- a/product/ERP5Type/dynamic/lazy_class.py +++ b/product/ERP5Type/dynamic/lazy_class.py @@ -231,7 +231,7 @@ class PortalTypeMetaClass(GhostBaseMetaClass, PropertyHolder): cls.loadClass() return getattr(cls, name) - raise AttributeError + raise AttributeError("'%r' has no attribute '%s'" % (cls, name)) def generatePortalTypeAccessors(cls, site, portal_type_category_list): category_tool = getattr(site, 'portal_categories', None) diff --git a/product/ERP5Type/tests/ERP5TypeTestCase.py b/product/ERP5Type/tests/ERP5TypeTestCase.py index 4a39cea146fa51d4a39abd753d6e69a7a6bc4ada..483916d4e1a39245bf19eaa7821b5668f255f27b 100644 --- a/product/ERP5Type/tests/ERP5TypeTestCase.py +++ b/product/ERP5Type/tests/ERP5TypeTestCase.py @@ -522,6 +522,16 @@ class ERP5TypeTestCaseMixin(ProcessingNodeTestCase, PortalTestCase): self.assertEquals(set(a), set(b), msg) assertSameSet = failIfDifferentSet + def assertHasAttribute(self, obj, attribute, msg=None): + self.failIfEqual(None, getattr(obj, attribute, None), + msg or "'%r': no attribute '%s'" % (obj, + attribute)) + + def failIfHasAttribute(self, obj, attribute, msg=None): + self.assertEquals(None, getattr(obj, attribute, None), + msg or "'%r': attribute '%s' present" % (obj, + attribute)) + def assertWorkflowTransitionFails(self, object, workflow_id, transition_id, error_message=None, state_variable='simulation_state'): """ diff --git a/product/ERP5Type/tests/testDynamicClassGeneration.py b/product/ERP5Type/tests/testDynamicClassGeneration.py index 3340f17e9dd9a834338c2f0ab73fe4e2408ff3aa..f04946c1d9be387136a8502e5fc6604db04e2741 100644 --- a/product/ERP5Type/tests/testDynamicClassGeneration.py +++ b/product/ERP5Type/tests/testDynamicClassGeneration.py @@ -616,16 +616,6 @@ class TestZodbPropertySheet(ERP5TypeTestCase): transaction.commit() self.test_module.getId() - def assertHasAttribute(self, obj, attribute, msg=None): - self.failIfEqual(None, getattr(obj, attribute, None), - msg or '%s: no attribute %s' % (obj.__name__, - attribute)) - - def failIfHasAttribute(self, obj, attribute, msg=None): - self.assertEquals(None, getattr(obj, attribute, None), - msg or '%s: attribute %s present' % (obj.__name__, - attribute)) - def testAssignUnassignZodbPropertySheet(self): """ From an existing portal type, assign ZODB Property Sheets and