[Erp5-report] r27209 - /erp5/trunk/products/ERP5/Document/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed May 27 10:18:11 CEST 2009


Author: yusuke
Date: Wed May 27 10:18:09 2009
New Revision: 27209

URL: http://svn.erp5.org?rev=27209&view=rev
Log:
remove exception for algorithm

Modified:
    erp5/trunk/products/ERP5/Document/BusinessPath.py
    erp5/trunk/products/ERP5/Document/BusinessProcess.py
    erp5/trunk/products/ERP5/Document/BusinessState.py

Modified: erp5/trunk/products/ERP5/Document/BusinessPath.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessPath.py?rev=27209&r1=27208&r2=27209&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessPath.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessPath.py [utf8] Wed May 27 10:18:09 2009
@@ -33,7 +33,6 @@
 from Products.CMFCore.PortalFolder import ContentFilter
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5.Document.Path import Path
-from Products.ERP5.Document.BusinessProcess import BackTrack
 
 import zope.interface
 
@@ -265,8 +264,9 @@
     if self.getParentValue().isStartDateReferential():
       return explanation.getStartDate()
     else:
-      return self.getExpectedStopDate(explanation, *args, **kwargs)\
-             - self.getLeadTime()
+      expected_date = self.getExpectedStopDate(explanation, *args, **kwargs)
+      if expected_date is not None:
+        return expected_date - self.getLeadTime()
 
   def _getPredecessorExpectedStartDate(self, explanation, predecessor_date=None, *args, **kwargs):
     if predecessor_date is None:
@@ -279,8 +279,9 @@
   def _getSuccessorExpectedStartDate(self, explanation, *args, **kwargs):
     node = self.getSuccessorValue()
     if node is not None:
-      return node.getExpectedBeginningDate(explanation, *args, **kwargs)\
-             - self.getLeadTime()
+      expected_date =  node.getExpectedBeginningDate(explanation, *args, **kwargs)
+      if expected_date is not None:
+        return expected_date - self.getLeadTime()
 
   def getExpectedStopDate(self, explanation, predecessor_date=None, *args, **kwargs):
     """
@@ -301,14 +302,16 @@
     if self.getParentValue().isStopDateReferential():
       return explanation.getStopDate()
     else:
-      return self.getExpectedStartDate(explanation, *args, **kwargs)\
-             + self.getLeadTime()
+      expected_date = self.getExpectedStartDate(explanation, *args, **kwargs)
+      if expected_date is not None:
+        return expected_date + self.getLeadTime()
 
   def _getPredecessorExpectedStopDate(self, explanation, *args, **kwargs):
     node = self.getPredecessorValue()
     if node is not None:
-      return node.getExpectedCompletionDate(explanation, *args, **kwargs)\
-             + self.getWaitTime() + self.getLeadTime()
+      expected_date = node.getExpectedCompletionDate(explanation, *args, **kwargs)
+      if expected_date is not None:
+        return expected_date + self.getWaitTime() + self.getLeadTime()
 
   def _getSuccessorExpectedStopDate(self, explanation, *args, **kwargs):
     node = self.getSuccessorValue()
@@ -338,19 +341,11 @@
       return root_explanation_method(
         explanation, visited=visited, *args, **kwargs)
 
-    predecessor_expected_date = None
-    try:
-      predecessor_expected_date = predecessor_method(
-        explanation, visited=visited, *args, **kwargs)
-    except BackTrack:
-      pass
-
-    successor_expected_date = None
-    try:
-      successor_expected_date = successor_method(
-        explanation, visited=visited, *args, **kwargs)
-    except BackTrack:
-      pass
+    predecessor_expected_date = predecessor_method(
+      explanation, visited=visited, *args, **kwargs)
+
+    successor_expected_date = successor_method(
+      explanation, visited=visited, *args, **kwargs)
 
     if successor_expected_date is not None or \
        predecessor_expected_date is not None:

Modified: erp5/trunk/products/ERP5/Document/BusinessProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessProcess.py?rev=27209&r1=27208&r2=27209&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessProcess.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessProcess.py [utf8] Wed May 27 10:18:09 2009
@@ -33,12 +33,6 @@
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5Type.XMLObject import XMLObject
 from Products.ERP5.Document.Path import Path
-
-class BackTrack(Exception):
-  # XXX this defined here until refactor 
-  """
-   This is a utility Exception for tree back tracking.
-  """
 
 class BusinessProcess(Path, XMLObject):
   """

Modified: erp5/trunk/products/ERP5/Document/BusinessState.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessState.py?rev=27209&r1=27208&r2=27209&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessState.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessState.py [utf8] Wed May 27 10:18:09 2009
@@ -32,7 +32,6 @@
 
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.Document.BusinessProcess import BackTrack
 
 class BusinessState(XMLObject):
   """
@@ -89,11 +88,13 @@
     # Should be re-calculated?
     if 'predecessor_date' in kwargs:
       del kwargs['predecessor_date']
-    return min(self._getExpectedDateList(explanation,
-                                         self.getSuccessorRelatedValueList(),
-                                         self._getExpectedCompletionDate,
-                                         *args,
-                                         **kwargs))
+    date_list = self._getExpectedDateList(explanation,
+                                          self.getSuccessorRelatedValueList(),
+                                          self._getExpectedCompletionDate,
+                                          *args,
+                                          **kwargs)
+    if len(date_list) > 0:
+      return min(date_list)
 
   def _getExpectedCompletionDate(self, path, *args, **kwargs):
     return path.getExpectedStopDate(*args, **kwargs)
@@ -108,11 +109,13 @@
     # Should be re-calculated?
     if 'predecessor_date' in kwargs:
       del kwargs['predecessor_date']
-    return min(self._getExpectedDateList(explanation,
-                                         self.getPredecessorRelatedValueList(),
-                                         self._getExpectedBeginningDate,
-                                         *args,
-                                         **kwargs))
+    date_list = self._getExpectedDateList(explanation,
+                                          self.getPredecessorRelatedValueList(),
+                                          self._getExpectedBeginningDate,
+                                          *args,
+                                          **kwargs)
+    if len(date_list) > 0:
+      return min(date_list)
 
   def _getExpectedBeginningDate(self, path, *args, **kwargs):
     expected_date = path.getExpectedStartDate(*args, **kwargs)
@@ -141,11 +144,7 @@
         if expected_date is not None:
           expected_date_list.append(expected_date)
 
-    # if visiting leaf of tree
-    if len(expected_date_list) == 0:
-      raise BackTrack
-    else:
-      return expected_date_list
+    return expected_date_list
 
   def getExpectedCompletionDuration(self, explanation):
     """




More information about the Erp5-report mailing list