commit-gnue
[Top][All Lists]
Advanced

[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
 
 





reply via email to

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