commit-gnue
[Top][All Lists]
Advanced

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

gnue/gnuef/src GFObjects.py


From: James Thompson
Subject: gnue/gnuef/src GFObjects.py
Date: Mon, 12 Mar 2001 20:29:27 -0800

CVSROOT:        /cvs
Module name:    gnue
Changes by:     James Thompson <address@hidden> 01/03/12 20:29:27

Modified files:
        gnuef/src      : GFObjects.py 

Log message:
        Fixed record deletion bug on master/detail forms

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/GFObjects.py.diff?r1=1.67&r2=1.68

Patches:
Index: gnue/gnuef/src/GFObjects.py
diff -u gnue/gnuef/src/GFObjects.py:1.67 gnue/gnuef/src/GFObjects.py:1.68
--- gnue/gnuef/src/GFObjects.py:1.67    Mon Mar 12 18:11:33 2001
+++ gnue/gnuef/src/GFObjects.py Mon Mar 12 20:29:27 2001
@@ -182,7 +182,7 @@
       self.dataSourceLink = GFDataSource(self)
       self.dataSourceLink.initialize()
     self.recordCount = self.dataSourceLink.getLastRecordNumber()
-        
+    
   def buildEntryList(self, object):
     if object.getObjectType() == 'GFEntry':
        self.entryList.append(object)
@@ -456,6 +456,7 @@
 
       self.dataConnection = self.form.databaseDictionary[self.database]
       self.fieldList = self.dataConnection.getFieldList(self.table).keys()
+      self.uniqueKey = self.dataConnection.getUniqueKey(self.table)
 
       # Build an empty record for new records and query mask seed
       for field in self.fieldList:
@@ -556,7 +557,7 @@
   #
   # commit
   #
-  # goes thru all records in the datasource and if they are new, have been 
alters, or marked
+  # goes thru all records in the datasource and if they are new, have been 
altered, or marked
   # for delete then it calls the appropriate GFDatabase methods to accomplish 
inserts,updates,or deletes
   #
   def commit(self):
@@ -566,27 +567,28 @@
         mask = {}
         for key in self.resultSet[count].keys():
           if key in self.dataConnection.getFieldList(self.table).keys() or \
-             key == self.dataConnection.uniqueKey:
+             key == self.uniqueKey:
             mask[key]=self.resultSet[count][key]
 
         GFDebug.printMesg(10, "will be passing\n%s"% mask)
                                                   
         if self.resultSetStatus[count] in ('modified', 'deleted'):
-          if self.resultSet[count].has_key(self.dataConnection.uniqueKey):
-            if self.resultSet[count][self.dataConnection.uniqueKey] == 
'delete':
+          if self.resultSet[count].has_key(self.uniqueKey):
+            print "Delete me ", self.resultSet[count][self.uniqueKey] , 
self.uniqueKey
+            if self.resultSet[count][self.uniqueKey] == 'deleted':
               # record never in database so just mark for cleanup
-              self.resultSet[count][self.dataConnection.uniqueKey] = -1
+              self.resultSet[count][self.uniqueKey] = -1
               
-            elif self.resultSet[count][self.dataConnection.uniqueKey] > 0:
+            elif self.resultSet[count][self.uniqueKey] > 0:
               GFDebug.printMesg(1, "updating the record")
               self.dataConnection.update(self.table,mask)
             else:
               GFDebug.printMesg(1,"deleting the record")
-              mask[self.dataConnection.uniqueKey] = \
-                mask[self.dataConnection.uniqueKey] * -1
+              mask[self.uniqueKey] = \
+                mask[self.uniqueKey] * -1
               self.dataConnection.delete(self.table,mask)
               # flip negative again so upcomming list purge see's the negatives
-              mask[self.dataConnection.uniqueKey] = -1
+              mask[self.uniqueKey] = -1
               
           else:
             GFDebug.printMesg(1, "Inserting the record")
@@ -599,7 +601,7 @@
       count = 0
       self.resultSetStatus = []
       while (count < len(self.resultSet)):
-        if self.resultSet[count].has_key(self.dataConnection.uniqueKey) and 
self.resultSet[count][self.dataConnection.uniqueKey] < 0:
+        if self.resultSet[count].has_key(self.uniqueKey) and 
self.resultSet[count][self.uniqueKey] < 0:
           del self.resultSet[count]
         else:
           count = count + 1
@@ -622,17 +624,18 @@
   # is marked for deletion on next commit
   #
   def markForRemoval(self,recordNumber):
-    if not self.resultSet[recordNumber].has_key(self.dataConnection.uniqueKey):
-      self.resultSet[recordNumber][self.dataConnection.uniqueKey] = 'delete'
+    print " unique key ", self.uniqueKey, " rset ", 
self.resultSet[recordNumber]
+    if not self.resultSet[recordNumber].has_key(self.uniqueKey):
+      self.resultSet[recordNumber][self.uniqueKey] = 'delete'
     else:
-      if self.resultSet[recordNumber][self.dataConnection.uniqueKey] == 
'delete':
-        del self.resultSet[recordNumber][self.dataConnection.uniqueKey]
+      if self.resultSet[recordNumber][self.uniqueKey] == 'delete':
+        del self.resultSet[recordNumber][self.uniqueKey]
       else:
-        self.resultSet[recordNumber][self.dataConnection.uniqueKey] = \
-        int(self.resultSet[recordNumber][self.dataConnection.uniqueKey]) * -1
+        self.resultSet[recordNumber][self.uniqueKey] = \
+        int(self.resultSet[recordNumber][self.uniqueKey]) * -1
 
     self.resultSetStatus[recordNumber] = 'deleted'
-    GFDebug.printMesg(1, "removing object: %s" % 
(self.resultSet[recordNumber][self.dataConnection.uniqueKey]))
+    GFDebug.printMesg(1, "removing object: %s" % 
(self.resultSet[recordNumber][self.uniqueKey]))
     
   def getField(self,recordNumber,fieldName):
     try:
@@ -718,11 +721,15 @@
     return results
   
   def delete(self, table, mask):
+    print "In database delete"
     self.link.delete(table,mask)
 
   def getFieldList(self,table):
-    self.uniqueKey = self.link.getUniqueKey(table)
-    return self.link.getFieldList(table)    
+    return self.link.getFieldList(table)
+
+  def getUniqueKey(self,table):
+    return self.link.getUniqueKey(table)
+    
 
 ############################################################
 # GFMsgBox



reply via email to

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