commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r7866 - trunk/gnue-common/src/datasources/drivers/Base


From: jamest
Subject: [gnue] r7866 - trunk/gnue-common/src/datasources/drivers/Base
Date: Wed, 17 Aug 2005 19:32:14 -0500 (CDT)

Author: jamest
Date: 2005-08-17 19:32:12 -0500 (Wed, 17 Aug 2005)
New Revision: 7866

Modified:
   trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py
Log:
added undelete to record sets


Modified: trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py 2005-08-16 
01:54:42 UTC (rev 7865)
+++ trunk/gnue-common/src/datasources/drivers/Base/RecordSet.py 2005-08-18 
00:32:12 UTC (rev 7866)
@@ -140,6 +140,7 @@
     # New recs:      'empty' -(__setitem__)-> 'inserted' -(delete)-> 'void'
     # Existing recs: 'clean' -(__setitem__)-> 'modified' -(delete)-> 'deleted'
     self.__status = 'clean'
+    self.__preDeleteStatus = None
 
     # The field values
     self.__fields = {}
@@ -362,11 +363,33 @@
       raise Exceptions.ReadOnlyDeleteError
 
     if self.__status in ['empty', 'inserted']:
+      self.__preDeleteStatus = self.__status
       self.__status = 'void'
     elif self.__status in ['clean', 'modified']:
+      self.__preDeleteStatus = self.__status
       self.__status = 'deleted'
 
+  # ---------------------------------------------------------------------------
+  # Remove the delete mark from the record
+  # ---------------------------------------------------------------------------
 
+  def undelete (self):
+    """
+    Remove the delete mark from the record
+
+    The record is restored to the status it had prior to being marked for 
+    delete.
+
+    @raise Exceptions.ReadOnlyDeleteError: if the RecordSet is read only.
+    """
+
+    if self.__readonly:
+      raise Exceptions.ReadOnlyDeleteError
+
+    assert self.__status in ['void','deleted']
+    self.__status = self.__preDeleteStatus
+    self.__preDeleteStatus = None
+  
   # ---------------------------------------------------------------------------
   # Call backend code
   # ---------------------------------------------------------------------------





reply via email to

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