diff roundup/backends/back_anydbm.py @ 964:832d1209aaa2

Preparing to turn back on link/unlink journal events. By default these are turned off. I've: - fixed back_anydbm so it can journal those events again (had broken it with recent changes) - changed the serialisation format for dates and intervals to use a numbers-only (and sign for Intervals) string instead of tuple-of-ints. Much smaller.
author Richard Jones <richard@users.sourceforge.net>
date Wed, 21 Aug 2002 07:07:27 +0000
parents f615fbd02c18
children dd35bab19dd9
line wrap: on
line diff
--- a/roundup/backends/back_anydbm.py	Tue Aug 20 22:05:31 2002 +0000
+++ b/roundup/backends/back_anydbm.py	Wed Aug 21 07:07:27 2002 +0000
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-#$Id: back_anydbm.py,v 1.61 2002-08-19 02:53:27 richard Exp $
+#$Id: back_anydbm.py,v 1.62 2002-08-21 07:07:27 richard Exp $
 '''
 This module defines a backend that saves the hyperdatabase in a database
 chosen by anydbm. It is guaranteed to always be available in python
@@ -342,9 +342,9 @@
             if isinstance(prop, Password):
                 d[k] = str(v)
             elif isinstance(prop, Date) and v is not None:
-                d[k] = v.get_tuple()
+                d[k] = v.serialise()
             elif isinstance(prop, Interval) and v is not None:
-                d[k] = v.get_tuple()
+                d[k] = v.serialise()
             else:
                 d[k] = v
         return d
@@ -605,25 +605,30 @@
     def doSaveJournal(self, classname, nodeid, action, params):
         # handle supply of the special journalling parameters (usually
         # supplied on importing an existing database)
-        if params.has_key('creator'):
-            journaltag = self.user.get(params['creator'], 'username')
-            del params['creator']
+        if isinstance(params, type({})):
+            if params.has_key('creator'):
+                journaltag = self.user.get(params['creator'], 'username')
+                del params['creator']
+            else:
+                journaltag = self.journaltag
+            if params.has_key('created'):
+                journaldate = params['created'].serialise()
+                del params['created']
+            else:
+                journaldate = date.Date().serialise()
+            if params.has_key('activity'):
+                del params['activity']
+
+            # serialise the parameters now
+            if action in ('set', 'create'):
+                params = self.serialise(classname, params)
         else:
             journaltag = self.journaltag
-        if params.has_key('created'):
-            journaldate = params['created'].get_tuple()
-            del params['created']
-        else:
-            journaldate = date.Date().get_tuple()
-        if params.has_key('activity'):
-            del params['activity']
-
-        # serialise the parameters now
-        if action in ('set', 'create'):
-            params = self.serialise(classname, params)
+            journaldate = date.Date().serialise()
 
         # create the journal entry
         entry = (nodeid, journaldate, journaltag, action, params)
+        print 'doSaveJournal', entry
 
         if __debug__:
             print >>hyperdb.DEBUG, 'doSaveJournal', entry
@@ -1907,6 +1912,9 @@
 
 #
 #$Log: not supported by cvs2svn $
+#Revision 1.61  2002/08/19 02:53:27  richard
+#full database export and import is done
+#
 #Revision 1.60  2002/08/19 00:23:19  richard
 #handle "unset" initial Link values (!)
 #

Roundup Issue Tracker: http://roundup-tracker.org/