dabo Commit
Revision 5418
Date: 2009-09-24 11:19:23 -0700 (Thu, 24 Sep 2009)
Author: Paul
Trac: http://trac.dabodev.com/changeset/5418

Changed:
U   trunk/dabo/biz/dBizobj.py

Log:
Patch to cancel unchanged rows, independently of the setting of the 
SaveNewUnchanged property. Ticket #1264



Diff:
Modified: trunk/dabo/biz/dBizobj.py
===================================================================
--- trunk/dabo/biz/dBizobj.py   2009-09-24 18:16:09 UTC (rev 5417)
+++ trunk/dabo/biz/dBizobj.py   2009-09-24 18:19:23 UTC (rev 5418)
@@ -639,18 +639,18 @@
                if self.__children:
                        # Must iterate all records to find potential changes in 
children:
                        self.__changedRows = []
-                       self.scan(self._listChangedRows)
+                       self.scan(self._listChangedRows, includeNewUnchanged)
                        return self.__changedRows
                else:
                        # Can use the much faster cursor.getChangedRows():
                        return 
self._CurrentCursor.getChangedRows(includeNewUnchanged)
 
 
-       def _listChangedRows(self):
+       def _listChangedRows(self, includeNewUnchanged=False):
                """ Called from a scan loop. If the current record is changed,
                append the RowNumber to the list.
                """
-               if self.isChanged():
+               if self.isChanged(includeNewUnchanged):
                        self.__changedRows.append(self.RowNumber)
 
 
@@ -1190,8 +1190,10 @@
                return ret
 
 
-       def isAnyChanged(self, useCurrentParent=None):
+       def isAnyChanged(self, useCurrentParent=None, includeNewUnchanged=None):
                """Returns True if any record in the current record set has 
been changed."""
+               if includeNewUnchanged is None:
+                       includeNewUnchanged = self.SaveNewUnchanged
                if useCurrentParent is None:
                        cc = self._CurrentCursor
                else:
@@ -1201,28 +1203,30 @@
                        # No cursor, no changes.
                        return False
 
-               if cc.isChanged(allRows=True, 
includeNewUnchanged=self.SaveNewUnchanged):
+               if cc.isChanged(allRows=True, 
includeNewUnchanged=includeNewUnchanged):
                        return True
 
                # Nothing's changed in the top level, so we need to recurse the 
children:
                for child in self.__children:
-                       if 
child.isAnyChanged(useCurrentParent=useCurrentParent):
+                       if 
child.isAnyChanged(useCurrentParent=useCurrentParent, 
includeNewUnchanged=includeNewUnchanged):
                                return True
                # If we made it to here, there are no changes.
                return False
 
 
-       def isChanged(self):
+       def isChanged(self, includeNewUnchanged=None):
                """ Return True if data has changed in this bizobj and any 
children.
 
                By default, only the current record is checked. Call 
isAnyChanged() to
                check all records.
                """
+               if includeNewUnchanged is None:
+                       includeNewUnchanged = self.SaveNewUnchanged
                cc = self._CurrentCursor
                if cc is None:
                        # No cursor, no changes.
                        return False
-               ret = cc.isChanged(allRows=False, 
includeNewUnchanged=self.SaveNewUnchanged)
+               ret = cc.isChanged(allRows=False, 
includeNewUnchanged=includeNewUnchanged)
 
                if not ret:
                        # see if any child bizobjs have changed
@@ -1230,7 +1234,7 @@
                                # If there are no records, there can be no 
changes
                                return False
                        for child in self.__children:
-                               ret = child.isAnyChanged(useCurrentParent=True)
+                               ret = child.isAnyChanged(useCurrentParent=True, 
includeNewUnchanged=includeNewUnchanged)
                                if ret:
                                        break
                return ret




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to