[Erp5-report] r39337 arnaud.fontaine - in /erp5/trunk: bt5/erp5_simulation/DocumentTemplate...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Oct 19 13:58:13 CEST 2010


Author: arnaud.fontaine
Date: Tue Oct 19 13:58:12 2010
New Revision: 39337

URL: http://svn.erp5.org?rev=39337&view=rev
Log:
Move Predicate.py from ERP5.Document to ERP5Type.Core as it will later
be needed to implement constraints in ZODB Property Sheets


Added:
    erp5/trunk/products/ERP5Type/Core/Predicate.py
      - copied unchanged from r39336, erp5/trunk/products/ERP5/Document/Predicate.py
Removed:
    erp5/trunk/products/ERP5/Document/Predicate.py
Modified:
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliveryRootSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliverySimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceRootSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceTransactionSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRootSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/PaymentSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/TradeModelSimulationRule.py
    erp5/trunk/bt5/erp5_simulation/bt/revision
    erp5/trunk/products/ERP5/Document/AccountingRuleCell.py
    erp5/trunk/products/ERP5/Document/Budget.py
    erp5/trunk/products/ERP5/Document/BudgetCell.py
    erp5/trunk/products/ERP5/Document/BudgetLine.py
    erp5/trunk/products/ERP5/Document/BudgetModel.py
    erp5/trunk/products/ERP5/Document/BudgetVariation.py
    erp5/trunk/products/ERP5/Document/BusinessPath.py
    erp5/trunk/products/ERP5/Document/Category.py
    erp5/trunk/products/ERP5/Document/CategoryMembershipEquivalenceTester.py
    erp5/trunk/products/ERP5/Document/ContributionPredicate.py
    erp5/trunk/products/ERP5/Document/DateTimeEquivalenceTester.py
    erp5/trunk/products/ERP5/Document/Domain.py
    erp5/trunk/products/ERP5/Document/FloatEquivalenceTester.py
    erp5/trunk/products/ERP5/Document/MappedValue.py
    erp5/trunk/products/ERP5/Document/OrderBuilder.py
    erp5/trunk/products/ERP5/Document/PredicateGroup.py
    erp5/trunk/products/ERP5/Document/RoundingModel.py
    erp5/trunk/products/ERP5/Document/SolverTypeInformation.py
    erp5/trunk/products/ERP5/Document/StringEquivalenceTester.py
    erp5/trunk/products/ERP5/Document/TradeModelLine.py
    erp5/trunk/products/ERP5/Document/Transformation.py
    erp5/trunk/products/ERP5/Document/TransformedResource.py
    erp5/trunk/products/ERP5/Document/VariationEquivalenceTester.py
    erp5/trunk/products/ERP5/mixin/composition.py
    erp5/trunk/products/ERP5/mixin/rule.py
    erp5/trunk/products/ERP5/tests/testPredicate.py
    erp5/trunk/products/ERP5Catalog/Document/Archive.py
    erp5/trunk/products/ERP5Legacy/Document/Rule.py

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliveryRootSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliveryRootSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliveryRootSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliveryRootSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace DeliveryRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliverySimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliverySimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliverySimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/DeliverySimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace DeliveryRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceRootSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceRootSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceRootSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceRootSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace InvoiceRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace InvoicingRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceTransactionSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceTransactionSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceTransactionSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoiceTransactionSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace InvoicingRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRootSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRootSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRootSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRootSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace OrderRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/PaymentSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/PaymentSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/PaymentSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/PaymentSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace PaymentRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/TradeModelSimulationRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/TradeModelSimulationRule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/TradeModelSimulationRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/TradeModelSimulationRule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ will replace DeliveryRule.
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin

Modified: erp5/trunk/bt5/erp5_simulation/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/bt/revision?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/bt/revision [utf8] Tue Oct 19 13:58:12 2010
@@ -1 +1 @@
-141
\ No newline at end of file
+142
\ No newline at end of file

Modified: erp5/trunk/products/ERP5/Document/AccountingRuleCell.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/AccountingRuleCell.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/AccountingRuleCell.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/AccountingRuleCell.py [utf8] Tue Oct 19 13:58:12 2010
@@ -31,7 +31,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.Document.Invoice import Invoice
 
 class AccountingRuleCell(Predicate, Invoice):

Modified: erp5/trunk/products/ERP5/Document/Budget.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Budget.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Budget.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Budget.py [utf8] Tue Oct 19 13:58:12 2010
@@ -29,7 +29,7 @@
 from AccessControl import ClassSecurityInfo
 
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 from Products.ERP5.Variated import Variated
 

Modified: erp5/trunk/products/ERP5/Document/BudgetCell.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BudgetCell.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BudgetCell.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BudgetCell.py [utf8] Tue Oct 19 13:58:12 2010
@@ -30,7 +30,7 @@
 from AccessControl import ClassSecurityInfo
 
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.Document.MetaNode import MetaNode
 from Products.ERP5.Document.Movement import Movement
 

Modified: erp5/trunk/products/ERP5/Document/BudgetLine.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BudgetLine.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BudgetLine.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BudgetLine.py [utf8] Tue Oct 19 13:58:12 2010
@@ -31,7 +31,7 @@ from AccessControl import ClassSecurityI
 
 from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLMatrix import XMLMatrix
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.Variated import Variated
 
 

Modified: erp5/trunk/products/ERP5/Document/BudgetModel.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BudgetModel.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BudgetModel.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BudgetModel.py [utf8] Tue Oct 19 13:58:12 2010
@@ -28,7 +28,7 @@
 from AccessControl import ClassSecurityInfo
 
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 class BudgetModel(Predicate):
   """A model of budget, with all budget variation

Modified: erp5/trunk/products/ERP5/Document/BudgetVariation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BudgetVariation.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BudgetVariation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BudgetVariation.py [utf8] Tue Oct 19 13:58:12 2010
@@ -28,7 +28,7 @@
 from AccessControl import ClassSecurityInfo
 
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 class BudgetVariation(Predicate):
   """Base class for budget variations.

Modified: erp5/trunk/products/ERP5/Document/BusinessPath.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessPath.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessPath.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessPath.py [utf8] Tue Oct 19 13:58:12 2010
@@ -33,7 +33,7 @@ from AccessControl import ClassSecurityI
 
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5.Document.Path import Path
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 import zope.interface
 

Modified: erp5/trunk/products/ERP5/Document/Category.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Category.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Category.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Category.py [utf8] Tue Oct 19 13:58:12 2010
@@ -34,7 +34,7 @@ from Products.ERP5.Document.MetaResource
 from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter
 from Products.ERP5Type.Base import Base
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 from zLOG import LOG
 

Modified: erp5/trunk/products/ERP5/Document/CategoryMembershipEquivalenceTester.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/CategoryMembershipEquivalenceTester.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/CategoryMembershipEquivalenceTester.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/CategoryMembershipEquivalenceTester.py [utf8] Tue Oct 19 13:58:12 2010
@@ -29,7 +29,7 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
 

Modified: erp5/trunk/products/ERP5/Document/ContributionPredicate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/ContributionPredicate.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/ContributionPredicate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/ContributionPredicate.py [utf8] Tue Oct 19 13:58:12 2010
@@ -28,7 +28,7 @@
 
 from Acquisition import aq_base
 from AccessControl import ClassSecurityInfo
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type.XMLObject import XMLObject
 from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.Cache import getReadOnlyTransactionCache, enableReadOnlyTransactionCache, disableReadOnlyTransactionCache

Modified: erp5/trunk/products/ERP5/Document/DateTimeEquivalenceTester.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/DateTimeEquivalenceTester.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/DateTimeEquivalenceTester.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/DateTimeEquivalenceTester.py [utf8] Tue Oct 19 13:58:12 2010
@@ -30,7 +30,7 @@ import zope.interface
 from AccessControl import ClassSecurityInfo
 from DateTime import DateTime
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
 

Modified: erp5/trunk/products/ERP5/Document/Domain.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Domain.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Domain.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Domain.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ from Products.ERP5Type import Permission
 
 from Products.ERP5.Document.MetaResource import MetaResource
 from Products.ERP5.Document.MetaNode import MetaNode
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 class Domain(Predicate, MetaNode, MetaResource):
   """

Modified: erp5/trunk/products/ERP5/Document/FloatEquivalenceTester.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/FloatEquivalenceTester.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/FloatEquivalenceTester.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/FloatEquivalenceTester.py [utf8] Tue Oct 19 13:58:12 2010
@@ -31,7 +31,7 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
 

Modified: erp5/trunk/products/ERP5/Document/MappedValue.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/MappedValue.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/MappedValue.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/MappedValue.py [utf8] Tue Oct 19 13:58:12 2010
@@ -30,7 +30,7 @@ from AccessControl import ClassSecurityI
 
 from Products.ERP5Type import Permissions, PropertySheet
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.Document.Amount import Amount
 
 class MappedValue(Predicate, Amount):

Modified: erp5/trunk/products/ERP5/Document/OrderBuilder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/OrderBuilder.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] Tue Oct 19 13:58:12 2010
@@ -29,7 +29,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.Document.Amount import Amount
 from Products.ERP5.MovementGroup import MovementGroupNode
 from Products.ERP5Type.TransactionalVariable import getTransactionalVariable

Removed: erp5/trunk/products/ERP5/Document/Predicate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Predicate.py?rev=39336&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/Document/Predicate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Predicate.py (removed)
@@ -1,643 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp at nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-from types import MethodType
-import zope.interface
-from warnings import warn
-from AccessControl import ClassSecurityInfo
-from Acquisition import aq_base, aq_inner
-
-from Products.CMFCore.utils import getToolByName
-
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter
-from Products.ERP5Type.Document import newTempBase
-from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5Type.Utils import convertToUpperCase
-from Products.ERP5Type.Cache import getReadOnlyTransactionCache, enableReadOnlyTransactionCache, disableReadOnlyTransactionCache
-from Products.ZSQLCatalog.SQLCatalog import SQLQuery
-from Products.ERP5Type.Globals import PersistentMapping
-from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
-
-class Predicate(XMLObject):
-  """
-    A Predicate object defines a list of criterions
-    which can be applied to test a document or to search for documents.
-
-    Predicates are defined by a combination of PropertySheet values
-    (ex. membership_criterion_list) and criterion list (ex. quantity
-    is between 0 and 10). An additional script can be associated to
-    extend the standard Predicate semantic with any additional
-    script based test.
-
-    The idea between Predicate in ERP5 is to have a simple
-    way of defining simple predicates which can be later
-    searched through a simplistic rule based engine and which can
-    still provide complete expressivity through additional scripting.
-
-    The approach is intended to provide the expressivity of a rule
-    based system without the burden of building a fully expressive
-    rule engine.
-  """
-  meta_type = 'ERP5 Predicate'
-  portal_type = 'Predicate'
-  add_permission = Permissions.AddPortalContent
-  isPredicate = ConstantGetter('isPredicate', value=True)
-
-  # Declarative security
-  security = ClassSecurityInfo()
-  security.declareObjectProtected(Permissions.AccessContentsInformation)
-
-  # Declarative properties
-  property_sheets = ( PropertySheet.Base
-                    , PropertySheet.Predicate
-                    , PropertySheet.CategoryCore
-                    , PropertySheet.SortIndex
-                    )
-
-  # Declarative interfaces
-  zope.interface.implements( interfaces.IPredicate, )
-
-  security.declareProtected( Permissions.AccessContentsInformation, 'test' )
-  def test(self, context, tested_base_category_list=None, 
-           strict_membership=0, **kw):
-    """
-      A Predicate can be tested on a given context.
-      Parameters can passed in order to ignore some conditions.
-
-      - tested_base_category_list:  this is the list of category that we do
-        want to test. For example, we might want to test only the
-        destination or the source of a predicate.
-      - if strict_membership is specified, we should make sure that we
-        are strictly a member of tested categories
-    """
-    self = self.asPredicate()
-    result = 1
-    if getattr(aq_base(self), '_identity_criterion', None) is None:
-      self._identity_criterion = PersistentMapping()
-      self._range_criterion = PersistentMapping()
-#    LOG('PREDICATE TEST', 0,
-#        'testing %s on context of %s' % \
-#        (self.getRelativeUrl(), context.getRelativeUrl()))
-    for property, value in self._identity_criterion.iteritems():
-      if isinstance(value, (list, tuple)):
-        result = context.getProperty(property) in value
-      else:
-        result = context.getProperty(property) == value
-#      LOG('predicate test', 0,
-#          '%s after prop %s : %s == %s' % \
-#          (result, property, context.getProperty(property), value))
-      if not result:
-        return result
-    for property, (min, max) in self._range_criterion.iteritems():
-      value = context.getProperty(property)
-      if min is not None:
-        result = value >= min
-#        LOG('predicate test', 0,
-#            '%s after prop %s : %s >= %s' % \
-#            (result, property, value, min))
-        if not result:
-          return result
-      if max is not None:
-        result = value < max
-#        LOG('predicate test', 0,
-#            '%s after prop %s : %s < %s' % \
-#            (result, property, value, max))
-        if not result:
-          return result
-    multimembership_criterion_base_category_list = \
-        self.getMultimembershipCriterionBaseCategoryList()
-    membership_criterion_base_category_list = \
-        self.getMembershipCriterionBaseCategoryList()
-    tested_base_category = {}
-#    LOG('predicate test', 0,
-#        'categories will be tested in multi %s single %s as %s' % \
-#        (multimembership_criterion_base_category_list,
-#        membership_criterion_base_category_list,
-#        self.getMembershipCriterionCategoryList()))
-    membership_criterion_category_list = \
-                            self.getMembershipCriterionCategoryList()
-    if tested_base_category_list is not None:
-      membership_criterion_category_list = [x for x in \
-          membership_criterion_category_list if x.split('/', 1)[0] in \
-          tested_base_category_list]
-
-    # Test category memberships. Enable the read-only transaction cache
-    # temporarily, if not enabled, because this part is strictly read-only,
-    # and context.isMemberOf is very expensive, when the category list has
-    # many items.
-    enabled = getReadOnlyTransactionCache() is not None
-    try:
-      if not enabled:
-        enableReadOnlyTransactionCache()
-      for c in membership_criterion_category_list:
-        bc = c.split('/', 1)[0]
-        if (bc not in tested_base_category) and \
-           (bc in multimembership_criterion_base_category_list):
-          tested_base_category[bc] = 1
-        elif (bc not in tested_base_category) and \
-             (bc in membership_criterion_base_category_list):
-          tested_base_category[bc] = 0
-        if (bc in multimembership_criterion_base_category_list):
-          tested_base_category[bc] = tested_base_category[bc] and \
-                                     context.isMemberOf(c, 
-                                         strict_membership=strict_membership)
-#        LOG('predicate test', 0,
-#            '%s after multi membership to %s' % \
-#            (tested_base_category[bc], c))
-        elif (bc in membership_criterion_base_category_list):
-          tested_base_category[bc] = tested_base_category[bc] or \
-                                     context.isMemberOf(c,
-                                         strict_membership=strict_membership)
-    finally:
-      if not enabled:
-        disableReadOnlyTransactionCache()
-
-#        LOG('predicate test', 0,
-#            '%s after single membership to %s' % \
-#            (tested_base_category[bc], c))
-    result = 0 not in tested_base_category.values()
-#    LOG('predicate test', 0,
-#        '%s after category %s ' % (result, tested_base_category.items()))
-    if not result:
-      return result
-    # Test method calls
-    test_method_id_list = self.getTestMethodIdList()
-    if test_method_id_list is not None :
-      for test_method_id in test_method_id_list :
-        if test_method_id is not None:
-          method = getattr(context,test_method_id)
-          try:
-            result = method(self)
-          except TypeError:
-            if method.func_code.co_argcount != isinstance(method, MethodType):
-              raise
-            # backward compatibilty with script that takes no argument
-            warn('Predicate %s uses an old-style method (%s) that does not'
-                 ' take the predicate as argument' % (
-               self.getRelativeUrl(), method.__name__), DeprecationWarning)
-            result = method()
-#          LOG('predicate test', 0,
-#              '%s after method %s ' % (result, test_method_id))
-          if not result:
-            return result
-    return result
-
-  @UnrestrictedMethod
-  def _unrestrictedResolveCategory(self, *args):
-    # Categories used on predicate can be not available to user query, which
-    # shall be applied with predicate.
-    portal_categories = getToolByName(self, 'portal_categories')
-    return portal_categories.resolveCategory(*args)
-
-  security.declareProtected( Permissions.AccessContentsInformation,
-                             'buildSQLQuery' )
-  def buildSQLQuery(self, strict_membership=0, table='category',
-                          join_table='catalog', join_column='uid',
-                          **kw):
-    """
-      A Predicate can be rendered as an SQL expression. This
-      can be used to generate SQL requests in reports or in
-      catalog search queries.
-
-      XXX - This method is not implemented yet
-    """
-    # Build the identity criterion
-    catalog_kw = {}
-    catalog_kw.update(kw) # query_table, REQUEST, ignore_empty_string, **kw
-    for criterion in self.getCriterionList():
-      if criterion.min and criterion.max:
-        catalog_kw[criterion.property] = { 'query' : (criterion.min, criterion.max),
-                                           'range' : 'minmax'
-                                         }
-      elif criterion.min:
-        catalog_kw[criterion.property] = { 'query' : criterion.min,
-                                           'range' : 'min'
-                                         }
-      elif criterion.max:
-        catalog_kw[criterion.property] = { 'query' : criterion.max,
-                                           'range' : 'max'
-                                         }
-      else:
-        # if a filter was passed as argument
-        if catalog_kw.has_key(criterion.property):
-          if isinstance(catalog_kw[criterion.property], (tuple, list)):
-            catalog_filter_set = set(catalog_kw[criterion.property])
-          else:
-            catalog_filter_set = set([catalog_kw[criterion.property]])
-          if isinstance(criterion.identity, (tuple, list)):
-            parameter_filter_set = set(criterion.identity)
-          else:
-            parameter_filter_set = set([criterion.identity])
-          catalog_kw[criterion.property] = \
-              list(catalog_filter_set.intersection(parameter_filter_set))
-        else:
-          catalog_kw[criterion.property] = criterion.identity
-
-    portal_catalog = getToolByName(self, 'portal_catalog')
-
-    from_table_dict = {}
-
-    # First build SQL for membership criteria
-    # It would be much nicer if all this was handled by the catalog in a central place
-    membership_dict = {}
-    for base_category in self.getMembershipCriterionBaseCategoryList():
-      membership_dict[base_category] = [] # Init dict with valid base categories
-    for category in self.getMembershipCriterionCategoryList():
-      base_category = category.split('/')[0] # Retrieve base category
-      if membership_dict.has_key(base_category):
-        category_value = self._unrestrictedResolveCategory(category, None)
-        if category_value is not None:
-          table_alias = "single_%s_%s" % (table, base_category)
-          from_table_dict[table_alias] = 'category'
-          membership_dict[base_category].append(category_value.asSQLExpression(
-                                          strict_membership=strict_membership,
-                                          table=table_alias,
-                                          base_category=base_category))
-    membership_select_list = []
-    for expression_list in membership_dict.values():
-      or_expression = ' OR '.join(expression_list)
-      if or_expression:
-        membership_select_list.append('( %s )' % or_expression)
-
-    # Then build SQL for multimembership_dict criteria
-    multimembership_dict = {}
-    for base_category in self.getMultimembershipCriterionBaseCategoryList():
-      multimembership_dict[base_category] = [] # Init dict with valid base categories
-    join_count = 0
-    for category in self.getMembershipCriterionCategoryList():
-      base_category = category.split('/')[0] # Retrieve base category
-      if multimembership_dict.has_key(base_category):
-        category_value = self._unrestrictedResolveCategory(category)
-        if category_value is not None:
-          join_count += 1
-          table_alias = "multi_%s_%s" % (table, join_count)
-          from_table_dict[table_alias] = 'category'
-          multimembership_dict[base_category].append(category_value.asSQLExpression(
-                                          strict_membership=strict_membership,
-                                          table=table_alias,
-                                          base_category=base_category))
-    multimembership_select_list = []
-    for expression_list in multimembership_dict.values():
-      and_expression = ' AND '.join(expression_list)
-      if and_expression:
-        multimembership_select_list.append(and_expression)
-
-    # Build the join where expression
-    join_select_list = []
-    for k in from_table_dict.iterkeys():
-      join_select_list.append('%s.%s = %s.uid' % (join_table, join_column, k))
-
-    sql_text = ' AND '.join(join_select_list + membership_select_list +
-                            multimembership_select_list)
-
-    # Now merge identity and membership criteria
-    if len(sql_text):
-      catalog_kw['where_expression'] = SQLQuery(sql_text)
-    else:
-      catalog_kw['where_expression'] = ''
-    sql_query = portal_catalog.buildSQLQuery(**catalog_kw)
-    for alias, table in sql_query['from_table_list']:
-      if from_table_dict.has_key(alias):
-        raise KeyError, "The same table is used twice for an identity criterion and for a membership criterion"
-      from_table_dict[alias] = table
-    sql_query['from_table_list'] = from_table_dict.items()
-    return sql_query
-
-  # Compatibililty SQL Sql
-  security.declareProtected( Permissions.AccessContentsInformation, 'buildSqlQuery' )
-  buildSqlQuery = buildSQLQuery
-
-  security.declareProtected( Permissions.AccessContentsInformation, 'asSQLExpression' )
-  def asSQLExpression(self, strict_membership=0, table='category'):
-    """
-      A Predicate can be rendered as an SQL expression. This
-      can be used to generate SQL requests in reports or in
-      catalog search queries.
-    """
-    return self.buildSQLQuery(strict_membership=strict_membership, table=table)['where_expression']
-
-  # Compatibililty SQL Sql
-  security.declareProtected( Permissions.AccessContentsInformation, 'asSqlExpression' )
-  asSqlExpression = asSQLExpression
-
-  security.declareProtected( Permissions.AccessContentsInformation, 'asSQLJoinExpression' )
-  def asSQLJoinExpression(self, strict_membership=0, table='category', join_table='catalog', join_column='uid'):
-    """
-    """
-    table_list = self.buildSQLQuery(strict_membership=strict_membership, table=table)['from_table_list']
-    sql_text_list = map(lambda (a,b): '%s AS %s' % (b,a), filter(lambda (a,b): a != join_table, table_list))
-    return ' , '.join(sql_text_list)
-
-  # Compatibililty SQL Sql
-  security.declareProtected( Permissions.AccessContentsInformation, 'asSqlJoinExpression' )
-  asSqlJoinExpression = asSQLJoinExpression
-
-  def searchResults(self, **kw):
-    """
-    """
-    portal_catalog = getToolByName(self, 'portal_catalog')
-    return portal_catalog.searchResults(build_sql_query_method=self.buildSQLQuery,**kw)
-
-  def countResults(self, REQUEST=None, used=None, **kw):
-    """
-    """
-    portal_catalog = getToolByName(self, 'portal_catalog')
-    return portal_catalog.countResults(build_sql_query_method=self.buildSQLQuery,**kw)
-
-  security.declareProtected( Permissions.AccessContentsInformation, 'getCriterionList' )
-  def getCriterionList(self, **kw):
-    """
-      Returns the list of criteria which are defined by the Predicate.
-
-      Each criterion is returned in a TempBase instance intended to be
-      displayed in a ListBox.
-
-      XXX - It would be better to return criteria in a Criterion class
-            instance
-    """
-    if getattr(aq_base(self), '_identity_criterion', None) is None:
-      self._identity_criterion = PersistentMapping()
-      self._range_criterion = PersistentMapping()
-    criterion_dict = {}
-    for p in self.getCriterionPropertyList():
-      criterion_dict[p] = newTempBase(self, 'new_%s' % p)
-      criterion_dict[p].identity = self._identity_criterion.get(p, None)
-      criterion_dict[p].uid = 'new_%s' % p
-      criterion_dict[p].property = p
-      criterion_dict[p].min = self._range_criterion.get(p, (None, None))[0]
-      criterion_dict[p].max = self._range_criterion.get(p, (None, None))[1]
-    criterion_list = criterion_dict.values()
-    criterion_list.sort()
-    return criterion_list
-
-  security.declareProtected( Permissions.ModifyPortalContent, 'setCriterion' )
-  def setCriterion(self, property, identity=None, min=None, max=None, **kw):
-    """
-      This methods sets parameters of a criterion. There is at most one
-      criterion per property. Defined parameters are
-
-      identity -- if not None, allows for testing identity of the property
-                  with the provided value
-
-      min      -- if not None, allows for testing that the property
-                  is greater than min
-
-      max      -- if not None, allows for testing that the property
-                  is greater than max
-
-    """
-    # XXX 'min' and 'max' are built-in functions.
-    if getattr(aq_base(self), '_identity_criterion', None) is None:
-      self._identity_criterion = PersistentMapping()
-      self._range_criterion = PersistentMapping()
-    if identity is not None :
-      self._identity_criterion[property] = identity
-    if min == '':
-      min = None
-    if max == '':
-      max = None
-    if min is None and max is None:
-      try:
-        del self._range_criterion[property]
-      except KeyError:
-        pass
-    else:
-      self._range_criterion[property] = (min, max)
-    self.reindexObject()
-
-  security.declareProtected( Permissions.ModifyPortalContent, 'edit' )
-  def edit(self, **kwd):
-    """
-      The edit method is overriden so that any time a
-      criterion_property_list property is defined, a list of criteria
-      is created to match the provided criterion_property_list.
-    """
-    if getattr(aq_base(self), '_identity_criterion', None) is None:
-      self._identity_criterion = PersistentMapping()
-      self._range_criterion = PersistentMapping()
-    if 'criterion_property_list' in kwd:
-      criterion_property_list = kwd['criterion_property_list']
-      identity_criterion = {}
-      range_criterion = {}
-      for criterion in self._identity_criterion.iterkeys() :
-        if criterion in criterion_property_list :
-          identity_criterion[criterion] = self._identity_criterion[criterion]
-      for criterion in self._range_criterion.iterkeys() :
-        if criterion in criterion_property_list :
-          range_criterion[criterion] = self._range_criterion[criterion]
-      self._identity_criterion = identity_criterion
-      self._range_criterion = range_criterion
-    kwd['reindex_object'] = 1
-    return self._edit(**kwd)
-
-  # Predicate fusion method
-  security.declareProtected( Permissions.ModifyPortalContent, 'setPredicateCategoryList' )
-  def setPredicateCategoryList(self, category_list):
-    """
-      This method updates a Predicate by implementing an
-      AND operation on all predicates (or categories)
-      provided in category_list. Categories behave as a
-      special kind of predicate which only acts on category
-      membership.
-
-      WARNING: this method does not take into account scripts at
-      this point.
-    """
-    category_tool = aq_inner(self.portal_categories)
-    base_category_id_list = category_tool.objectIds()
-    membership_criterion_category_list = []
-    membership_criterion_base_category_list = []
-    multimembership_criterion_base_category_list = []
-    test_method_id_list = []
-    criterion_property_list = []
-    # reset criterions
-    self._identity_criterion = PersistentMapping()
-    self._range_criterion = PersistentMapping()
-
-    for c in category_list:
-      bc = c.split('/')[0]
-      if bc in base_category_id_list:
-        # This is a category
-        membership_criterion_category_list.append(c)
-        membership_criterion_base_category_list.append(bc)
-      else:
-        predicate_value = category_tool.resolveCategory(c)
-        if predicate_value is not None:
-          criterion_property_list.extend(predicate_value.getCriterionPropertyList())
-          membership_criterion_category_list.extend(
-                      predicate_value.getMembershipCriterionCategoryList())
-          membership_criterion_base_category_list.extend(
-                      predicate_value.getMembershipCriterionBaseCategoryList())
-          multimembership_criterion_base_category_list.extend(
-                      predicate_value.getMultimembershipCriterionBaseCategoryList())
-          test_method_id_list += list(predicate_value.getTestMethodIdList() or [])
-          for p in predicate_value.getCriterionList():
-            self.setCriterion(p.property, identity=p.identity, min=p.min, max=p.max)
-    self.setCriterionPropertyList(criterion_property_list)
-    self._setMembershipCriterionCategoryList(membership_criterion_category_list)
-    self._setMembershipCriterionBaseCategoryList(membership_criterion_base_category_list)
-    self._setMultimembershipCriterionBaseCategoryList(multimembership_criterion_base_category_list)
-    self._setTestMethodIdList(test_method_id_list)
-    self.reindexObject()
-
-  security.declareProtected(Permissions.AccessContentsInformation, 'generatePredicate')
-  def generatePredicate(self, multimembership_criterion_base_category_list=(),
-                        membership_criterion_base_category_list=(),
-                        criterion_property_list=()):
-    """
-    This method generates a new temporary predicate based on an ad-hoc
-    interpretation of local properties of an object. For example,
-    a start_range_min property will be interpreted as a way to define
-    a min criterion on start_date.
-
-    The purpose of this method is to be called from
-    a script called PortalType_asPredicate to ease the generation of
-    Predicates based on range properties. It should be considered mostly
-    as a trick to simplify the development of Predicates and forms.
-    """
-    new_membership_criterion_category_list = list(self.getMembershipCriterionCategoryList())
-    new_membership_criterion_base_category_list = list(self.getMembershipCriterionBaseCategoryList())
-    new_multimembership_criterion_base_category_list = list(self.getMultimembershipCriterionBaseCategoryList())
-
-    for base_category in multimembership_criterion_base_category_list:
-      category_list = self.getProperty(base_category + '_list')
-      if category_list is not None and len(category_list)>0:
-        for category in category_list:
-          new_membership_criterion_category_list.append(base_category + '/' + category)
-        if base_category not in new_multimembership_criterion_base_category_list:
-          new_multimembership_criterion_base_category_list.append(base_category)
-
-    for base_category in membership_criterion_base_category_list:
-      category_list = self.getProperty(base_category + '_list')
-      if category_list is not None and len(category_list)>0:
-        for category in category_list:
-          new_membership_criterion_category_list.append(base_category + '/' + category)
-        if base_category not in new_membership_criterion_base_category_list:
-          new_membership_criterion_base_category_list.append(base_category)
-
-    new_criterion_property_list =  list(self.getCriterionPropertyList())
-
-    # We need to build new criteria for asContext, and we should not
-    # modify the original, so we always make copies. Since the usage is
-    # temporary, use dicts instead of persistent mappings.
-    identity_criterion = getattr(self, '_identity_criterion', None)
-    if identity_criterion is None:
-      identity_criterion = {}
-    else:
-      identity_criterion = dict(identity_criterion)
-    range_criterion = getattr(self, '_range_criterion', None)
-    if range_criterion is None:
-      range_criterion = {}
-    else:
-      range_criterion = dict(range_criterion)
-
-    # Look at local properties and make it criterion properties
-    for property in criterion_property_list:
-      if property not in self.getCriterionPropertyList() \
-        and property in self.propertyIds():
-          new_criterion_property_list.append(property)
-          property_min = property + '_range_min'
-          property_max = property + '_range_max'
-          if getattr(self, 'get%s' % convertToUpperCase(property), None) is not None\
-            and self.getProperty(property) is not None:
-            identity_criterion[property] = self.getProperty(property)
-          elif getattr(self, 'get%s' % convertToUpperCase(property_min), None) is not None:
-            min = self.getProperty(property_min)
-            max = self.getProperty(property_max)
-            range_criterion[property] = (min,max)
-    # Return a new context with new properties, like if
-    # we have a predicate with local properties
-    new_self = self.asContext(
-        membership_criterion_category=new_membership_criterion_category_list,
-        membership_criterion_base_category=new_membership_criterion_base_category_list,
-        multimembership_criterion_base_category=new_multimembership_criterion_base_category_list,
-        criterion_property_list=new_criterion_property_list,
-        _identity_criterion=identity_criterion,
-        _range_criterion=range_criterion)
-
-    return new_self
-
-  # Predicate handling
-  security.declareProtected(Permissions.AccessContentsInformation,
-                            'asPredicate')
-  def asPredicate(self, script_id=None):
-    """
-      This method tries to convert the current Document into a predicate
-      looking up methods named ${PortalType}_asPredicate,
-      ${MetaType}_asPredicate, ${Class}_asPredicate     
-    """
-    if script_id is not None:
-      script = getattr(self, script_id, None)
-    else:
-      script = self._getTypeBasedMethod('asPredicate')
-    if script is not None:
-      return script()
-    return self
-
-  def searchPredicate(self, **kw):
-    """
-      Returns a list of documents matching the predicate
-
-      TO BE IMPLEMENTED using portal_catalog(**kw)
-    """
-    pass
-
-  security.declareProtected(Permissions.AccessContentsInformation,
-                            'getMembershipCriterionCategoryList')
-  def getMembershipCriterionCategoryList(self, filter=None, **kw):
-    """
-    If filter is specified, return category only or document only
-    in membership_criterion_category values.
-    """
-    all_list = self._baseGetMembershipCriterionCategoryList()
-    if filter in ('category', 'document'):
-      portal_categories = self.getPortalObject().portal_categories
-      result_dict = {'category':[], 'document':[]}
-      for x in all_list:
-        try:
-          if portal_categories.restrictedTraverse(x).getPortalType() == \
-             'Category':
-            result_dict['category'].append(x)
-          else:
-            result_dict['document'].append(x)
-        except KeyError:
-          result_dict['document'].append(x)
-      return result_dict[filter]
-    else:
-      return all_list
-
-  security.declareProtected(Permissions.ModifyPortalContent,
-                            'setMembershipCriterionDocumentList' )
-  def setMembershipCriterionDocumentList(self, document_list):
-    """
-    Appends to membership_criterion_category values.
-    """
-    return self.setMembershipCriterionCategoryList(
-      (self.getMembershipCriterionCategoryList() + document_list))

Modified: erp5/trunk/products/ERP5/Document/PredicateGroup.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/PredicateGroup.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/PredicateGroup.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/PredicateGroup.py [utf8] Tue Oct 19 13:58:12 2010
@@ -26,7 +26,7 @@
 #
 ##############################################################################
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 # Just for compatibility    
 class PredicateGroup(Predicate):

Modified: erp5/trunk/products/ERP5/Document/RoundingModel.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/RoundingModel.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/RoundingModel.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/RoundingModel.py [utf8] Tue Oct 19 13:58:12 2010
@@ -27,7 +27,7 @@
 ##############################################################################
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import PropertySheet, Permissions
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type.Utils import UpperCase
 from decimal import Decimal
 from Products.ERP5.Tool.RoundingTool import ROUNDING_OPTION_DICT

Modified: erp5/trunk/products/ERP5/Document/SolverTypeInformation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SolverTypeInformation.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SolverTypeInformation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SolverTypeInformation.py [utf8] Tue Oct 19 13:58:12 2010
@@ -29,7 +29,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5Type.ERP5Type import ERP5TypeInformation
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 class SolverTypeInformation(Predicate, ERP5TypeInformation):
   """

Modified: erp5/trunk/products/ERP5/Document/StringEquivalenceTester.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/StringEquivalenceTester.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/StringEquivalenceTester.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/StringEquivalenceTester.py [utf8] Tue Oct 19 13:58:12 2010
@@ -31,7 +31,7 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
 

Modified: erp5/trunk/products/ERP5/Document/TradeModelLine.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/TradeModelLine.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/TradeModelLine.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/TradeModelLine.py [utf8] Tue Oct 19 13:58:12 2010
@@ -33,7 +33,7 @@ from Products.CMFCore.utils import getTo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5Type.XMLMatrix import XMLMatrix
 from Products.ERP5.Document.Amount import Amount
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5.AggregatedAmountList import AggregatedAmountList
 from Products.ERP5.Document.TradeCondition import TradeCondition
 from Products.ERP5.PropertySheet.TradeModelLine import (TARGET_LEVEL_MOVEMENT,

Modified: erp5/trunk/products/ERP5/Document/Transformation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Transformation.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Transformation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Transformation.py [utf8] Tue Oct 19 13:58:12 2010
@@ -40,7 +40,7 @@ from Products.ERP5Type.XMLObject import 
 
 from Products.ERP5.Variated import Variated
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 from Products.CMFCategory.Renderer import Renderer
 from Products.ERP5.AggregatedAmountList import AggregatedAmountList

Modified: erp5/trunk/products/ERP5/Document/TransformedResource.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/TransformedResource.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/TransformedResource.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/TransformedResource.py [utf8] Tue Oct 19 13:58:12 2010
@@ -39,7 +39,7 @@ from Products.ERP5Type.XMLMatrix import 
 from Products.ERP5.Document.Amount import Amount
 from Products.ERP5.AggregatedAmountList import AggregatedAmountList
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 class TransformedResource(Predicate, XMLObject, XMLMatrix, Amount):
     """

Modified: erp5/trunk/products/ERP5/Document/VariationEquivalenceTester.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/VariationEquivalenceTester.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/VariationEquivalenceTester.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/VariationEquivalenceTester.py [utf8] Tue Oct 19 13:58:12 2010
@@ -29,7 +29,7 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
 

Modified: erp5/trunk/products/ERP5/mixin/composition.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/mixin/composition.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/mixin/composition.py [utf8] (original)
+++ erp5/trunk/products/ERP5/mixin/composition.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ from Acquisition import aq_base
 from Products.ERP5Type import Permissions
 from Products.ERP5Type.Cache import transactional_cached
 from Products.ERP5Type.Utils import sortValueList
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery
 
 

Modified: erp5/trunk/products/ERP5/mixin/rule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/mixin/rule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/mixin/rule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/mixin/rule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -31,7 +31,7 @@ from AccessControl import ClassSecurityI
 from Acquisition import aq_base
 from Products.CMFCore.utils import getToolByName
 from Products.ERP5Type import Permissions, interfaces
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 
 def _compare(tester_list, prevision_movement, decision_movement):
   for tester in tester_list:

Modified: erp5/trunk/products/ERP5/tests/testPredicate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testPredicate.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testPredicate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testPredicate.py [utf8] Tue Oct 19 13:58:12 2010
@@ -274,7 +274,7 @@ class TestPredicates(TestPredicateMixIn)
   def test_Interface(self):
     """Test Predicate implements Predicate interface."""
     from Products.ERP5Type.interfaces import IPredicate
-    from Products.ERP5Type.Document.Predicate import Predicate
+    from Products.ERP5Type.Core.Predicate import Predicate
     predicate = self.createPredicate()
     self.failUnless(IPredicate.providedBy(predicate))
     from zope.interface.verify import verifyClass

Modified: erp5/trunk/products/ERP5Catalog/Document/Archive.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/Document/Archive.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/Document/Archive.py [utf8] (original)
+++ erp5/trunk/products/ERP5Catalog/Document/Archive.py [utf8] Tue Oct 19 13:58:12 2010
@@ -31,7 +31,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import PropertySheet, Permissions, interfaces
 from Products.ERP5Type.Globals import InitializeClass
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from zope.interface import implements
 
 class Archive(Predicate):

Modified: erp5/trunk/products/ERP5Legacy/Document/Rule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Legacy/Document/Rule.py?rev=39337&r1=39336&r2=39337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Legacy/Document/Rule.py [utf8] (original)
+++ erp5/trunk/products/ERP5Legacy/Document/Rule.py [utf8] Tue Oct 19 13:58:12 2010
@@ -32,7 +32,7 @@ import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, interfaces
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.Document.Predicate import Predicate
+from Products.ERP5Type.Core.Predicate import Predicate
 from Acquisition import aq_base
 
 class Rule(Predicate, XMLObject):




More information about the Erp5-report mailing list