[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef/src GFObjects.py,
James Thompson <=