commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r6663 - trunk/gnue-common/src/datasources/drivers/Base


From: johannes
Subject: r6663 - trunk/gnue-common/src/datasources/drivers/Base
Date: Tue, 9 Nov 2004 08:53:02 -0600 (CST)

Author: johannes
Date: 2004-11-09 08:53:01 -0600 (Tue, 09 Nov 2004)
New Revision: 6663

Modified:
   trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py
   trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
Log:
A record is flaged 'pending' even if a detail record is pending


Modified: trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py 2004-11-09 
14:00:28 UTC (rev 6662)
+++ trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py 2004-11-09 
14:53:01 UTC (rev 6663)
@@ -90,11 +90,19 @@
     # The _insertFlag and _deleteFlag takes care of records that
     # were inserted, but then deleted before a save (i.e., nothing to do)
     if self._emptyFlag or self._insertFlag and self._deleteFlag:
-      return False
+      result = False
     else:
-      return self._insertFlag or self._deleteFlag or self._updateFlag
+      result = self._insertFlag or self._deleteFlag or self._updateFlag
 
+    if not result:
+      for child in self._cachedDetailResultSets.values ():
+        if child.isPending ():
+          result = True
+          break
 
+    return result
+
+
   # Returns 1=Record is pending a deletion
   def isDeleted(self):
     if self._emptyFlag:
@@ -247,11 +255,9 @@
 
     if self.isPending():
       gDebug (5, 'Posting datasource %s' % self._parent._dataObject.name)
+      self._postChanges (recordNumber)
 
-      if self.isPending():
-        self._postChanges(recordNumber)
 
-
     # Post all detail records
     for child in (self._cachedDetailResultSets.keys()):
       c = self._cachedDetailResultSets[child]._dataObject

Modified: trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2004-11-09 
14:00:28 UTC (rev 6662)
+++ trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2004-11-09 
14:53:01 UTC (rev 6663)
@@ -29,7 +29,6 @@
 
 __all__ = ['ResultSet']
 
-from gnue.common.apps import GDebug
 from gnue.common.datasources import GConditions, Exceptions
 import string
 
@@ -194,7 +193,7 @@
       tmsg =  _("Attempted to insert into a read only datasource")
       raise Exceptions.ReadOnlyError, tmsg
     else:
-      GDebug.printMesg(7,'Inserting a blank record')
+      gDebug (7,'Inserting a blank record')
       self._currentRecord += 1
       self._cachedRecords.insert(self._currentRecord, 
self._createEmptyRecord())
       self._recordCount += 1
@@ -265,12 +264,14 @@
   # Returns 1=DataObject, or a detail resultset, has uncommitted changes
   def isPending(self):
     for rec in (self._cachedRecords):
-      if rec.isPending():
-        return 1
+      if rec.isPending ():
+        return True
+
       else:
         for detail in rec._cachedDetailResultSets.values():
-          if detail.isPending():
+          if detail.isPending ():
             return True
+
     return False
 
 
@@ -331,7 +332,7 @@
 #      self._currentRecord = self._recordCount - 1
 
   def notifyDetailObjects(self):
-    GDebug.printMesg(5,'Master record changed; Notifying Detail Objects')
+    gDebug (5,'Master record changed; Notifying Detail Objects')
     for detail in self._dataObject._detailObjects:
       if detail[1]:
         detail[1].masterResultSetChanged(self,





reply via email to

[Prev in Thread] Current Thread [Next in Thread]