[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r7405 - trunk/gnue-forms/src/GFObjects
From: |
reinhard |
Subject: |
[gnue] r7405 - trunk/gnue-forms/src/GFObjects |
Date: |
Mon, 18 Apr 2005 16:47:19 -0500 (CDT) |
Author: reinhard
Date: 2005-04-18 16:47:18 -0500 (Mon, 18 Apr 2005)
New Revision: 7405
Modified:
trunk/gnue-forms/src/GFObjects/GFBlock.py
trunk/gnue-forms/src/GFObjects/GFDataSource.py
Log:
Removed direct access to DataObject in GFBlock.
Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py 2005-04-18 21:28:14 UTC (rev
7404)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py 2005-04-18 21:47:18 UTC (rev
7405)
@@ -527,8 +527,8 @@
if self._dataSourceLink.hasMaster ():
return
- if self._dataSourceLink._dataObject._connection is not None:
- self._dataSourceLink._dataObject._connection.rollback ()
+ if self._dataSourceLink._connection is not None:
+ self._dataSourceLink._connection.rollback ()
self._dataSourceLink.createEmptyResultSet ()
@@ -549,8 +549,8 @@
# if called from GFForm the connection's rollback () has been executed
# already. But if called from a trigger code we do it here
if backendRollback:
- if self._dataSourceLink._dataObject._connection is not None:
- self._dataSourceLink._dataObject._connection.rollback ()
+ if self._dataSourceLink._connection is not None:
+ self._dataSourceLink._connection.rollback ()
if not recovering:
self._dataSourceLink.createEmptyResultSet ()
@@ -585,19 +585,17 @@
def processQuery(self):
# Set the maxList to a single master block
# as a placeholder
- maxList = [self._dataSourceLink._dataObject]
- while maxList[0]._masterObject:
- maxList = [maxList[0]._masterObject]
+ maxList = [self._getTopMasterBlock ()]
# Find the longest master/detail chain that
# contains query values. This will become
# the chain that is queried
for block in self._logic._blockList:
- if block._queryValues.keys():
- templist = [block._dataSourceLink._dataObject]
- while templist[-1]._masterObject:
- templist.append(templist[-1]._masterObject)
- if len(maxList) < len(templist): maxList = templist
+ if block._queryValues.keys ():
+ templist = [block]
+ while (templist [-1])._getMasterBlock ():
+ templist.append ((templist [-1])._getMasterBlock ())
+ if len (maxList) < len (templist): maxList = templist
# Store block states
for block in self._logic._blockList:
@@ -606,39 +604,29 @@
block._lastQueryValues.update(block._queryValues)
# graft in the sloppy query stuff if needed
- for dataobject in maxList:
- for block in self._logic._blockList:
- if dataobject == block._dataSourceLink._dataObject:
- break
+ for block in maxList:
for entry in block._entryList:
if hasattr(entry._field,'sloppyQuery') and
block._queryValues.has_key(entry._field):
block._queryValues[entry._field] = "%"+
string.join(list(block._queryValues[entry._field]),"%")+"%"
# Find root block
- for block in self._logic._blockList:
- if maxList[-1] == block._dataSourceLink._dataObject:
- break
- rootBlock = block
+ rootBlock = maxList [-1]
# Condition for the master block
conditions = _generateConditional(rootBlock)
# Conditions for the detail block
- for dataobject in maxList[:-1]:
+ for block in maxList[:-1]:
- for block in self._logic._blockList:
- if dataobject == block._dataSourceLink._dataObject:
- break
-
block.processTrigger('PRE-QUERY')
for field in block._fieldList:
field.processTrigger('PRE-QUERY')
c = _generateConditional(block)
exist = GConditions.GCexist()
- exist.table = dataobject.table
- exist.masterlink = string.join (dataobject._masterfields, ', ')
- exist.detaillink = string.join (dataobject._detailfields, ', ')
+ exist.table = block._dataSourceLink.table
+ exist.masterlink = block._dataSourceLink.masterlink
+ exist.detaillink = block._dataSourceLink.detaillink
exist._children = [c]
conditions = GConditions.combineConditions (conditions, exist)
@@ -686,6 +674,32 @@
self.switchRecord (0)
+ # ---------------------------------------------------------------------------
+ # Return the top level master block of this block
+ # ---------------------------------------------------------------------------
+
+ def _getTopMasterBlock (self):
+
+ result = self
+ master = result._getMasterBlock ()
+ while master is not None:
+ result = master
+ master = result._getMasterBlock ()
+ return result
+
+
+ # ---------------------------------------------------------------------------
+ # Return the master block of this block
+ # ---------------------------------------------------------------------------
+
+ def _getMasterBlock (self):
+
+ if self._dataSourceLink.hasMaster ():
+ return (self._dataSourceLink.getMaster ()).getBlock ()
+ else:
+ return None
+
+
###################################################################
#
# Trigger settable stuff
Modified: trunk/gnue-forms/src/GFObjects/GFDataSource.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFDataSource.py 2005-04-18 21:28:14 UTC
(rev 7404)
+++ trunk/gnue-forms/src/GFObjects/GFDataSource.py 2005-04-18 21:47:18 UTC
(rev 7405)
@@ -53,7 +53,7 @@
self.__block = block
- def getBlock (self, block):
+ def getBlock (self):
return self.__block
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7405 - trunk/gnue-forms/src/GFObjects,
reinhard <=