[Top][All Lists]
[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,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r6663 - trunk/gnue-common/src/datasources/drivers/Base,
johannes <=