diff --git a/product/ERP5/PropertySheet/DivergenceTester.py b/product/ERP5/PropertySheet/DivergenceTester.py index 01b497b678b270163bfaa44b506f325112a4e193..e1968aadd1caa0615c8637517a043932067e7100 100644 --- a/product/ERP5/PropertySheet/DivergenceTester.py +++ b/product/ERP5/PropertySheet/DivergenceTester.py @@ -39,6 +39,11 @@ class DivergenceTester: 'type' : 'lines', 'default' : (), 'mode' : 'w' }, + { 'id' : 'testing_provider', + 'description' : 'Defines whether a divergence tester acts as a testing provider.', + 'type' : 'boolean', + 'default' : 0, + 'mode' : 'rw' }, { 'id' : 'matching_provider', 'description' : 'Defines whether a divergence tester acts as a matching provider.', 'type' : 'boolean', diff --git a/product/ERP5/mixin/rule.py b/product/ERP5/mixin/rule.py index 4d8b7b04897345076b1ce6201b5f846afbce9d12..b37414d2c5bb08e54d5183f2d1e284f0bd291d52 100644 --- a/product/ERP5/mixin/rule.py +++ b/product/ERP5/mixin/rule.py @@ -235,20 +235,14 @@ class RuleMixin: """ raise NotImplementedError - def _getDivergenceTesterList(self, exclude_quantity=True): + def _getDivergenceTesterList(self): """ Return the applicable divergence testers which must - be used to test movement divergence. - - exclude_quantity -- if set to true, do not consider - quantity divergence testers + be used to test movement divergence. (ie. not all + divergence testers of the Rule) """ - tester_list = self.objectValues( - portal_type=self.getPortalDivergenceTesterTypeList()) - if exclude_quantity: - return [x for x in tester_list if x.getTestedProperty() != 'quantity'] - else: - return tester_list + return filter(lambda x:x.isTestingProvider(), self.objectValues( + portal_type=self.getPortalDivergenceTesterTypeList())) def _getMatchingTesterList(self): """ @@ -256,7 +250,8 @@ class RuleMixin: be used to match movements and build the diff (ie. not all divergence testers of the Rule) """ - raise NotImplementedError + return filter(lambda x:x.isMatchingProvider(), self.objectValues( + portal_type=self.getPortalDivergenceTesterTypeList())) def _getQuantityTesterList(self): """