changeset 2398:202701d52788

fixed anydbm & metakit import/export ([SF#965216], [SF#964457], [SF#964450])
author Richard Jones <richard@users.sourceforge.net>
date Tue, 08 Jun 2004 05:30:56 +0000
parents fa50e1347397
children 5fd066bcf9cf
files CHANGES.txt roundup/backends/back_anydbm.py roundup/backends/back_metakit.py
diffstat 3 files changed, 22 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES.txt	Tue Jun 08 05:29:18 2004 +0000
+++ b/CHANGES.txt	Tue Jun 08 05:30:56 2004 +0000
@@ -16,6 +16,7 @@
 - re-acquire the OTK manager when we re-open the database
 - mailgw handler can close the database on us
 - fixed grouping by a NULL Link value
+- fixed anydbm import/export (sf bugs 965216, 964457, 964450)
 
 
 2004-05-28 0.7.3
--- a/roundup/backends/back_anydbm.py	Tue Jun 08 05:29:18 2004 +0000
+++ b/roundup/backends/back_anydbm.py	Tue Jun 08 05:30:56 2004 +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.149 2004-05-23 23:24:47 richard Exp $
+#$Id: back_anydbm.py,v 1.150 2004-06-08 05:30:32 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
 versions >2.1.1 (the dumbdbm fallback in 2.1.1 and earlier has several
@@ -2009,6 +2009,7 @@
         r = []
         for nodeid in self.getnodeids():
             for nodeid, date, user, action, params in self.history(nodeid):
+                print (nodeid, date, user, action, params)
                 date = date.get_tuple()
                 if action == 'set':
                     for propname, value in params.items():
@@ -2035,7 +2036,7 @@
         d = {}
         for l in entries:
             l = map(eval, l)
-            nodeid, date, user, action, params = l
+            nodeid, jdate, user, action, params = l
             r = d.setdefault(nodeid, [])
             if action == 'set':
                 for propname, value in params.items():
@@ -2051,7 +2052,7 @@
                         pwd.unpack(value)
                         value = pwd
                     params[propname] = value
-            r.append((nodeid, date.Date(date), user, action, params))
+            r.append((nodeid, date.Date(jdate), user, action, params))
 
         for nodeid, l in d.items():
             self.db.setjournal(self.classname, nodeid, l)
--- a/roundup/backends/back_metakit.py	Tue Jun 08 05:29:18 2004 +0000
+++ b/roundup/backends/back_metakit.py	Tue Jun 08 05:30:56 2004 +0000
@@ -1,4 +1,4 @@
-# $Id: back_metakit.py,v 1.72 2004-05-23 23:24:47 richard Exp $
+# $Id: back_metakit.py,v 1.73 2004-06-08 05:30:32 richard Exp $
 '''Metakit backend for Roundup, originally by Gordon McMillan.
 
 Known Current Bugs:
@@ -209,8 +209,8 @@
                          nodeid=int(nodeid),
                          date=creation,
                          action=action,
-                         user = creator,
-                         params = marshal.dumps(params))
+                         user=creator,
+                         params=marshal.dumps(params))
 
     def setjournal(self, tablenm, nodeid, journal):
         '''Set the journal to the "journal" list.'''
@@ -223,7 +223,7 @@
                              nodeid=int(nodeid),
                              date=date,
                              action=action,
-                             user=user,
+                             user=int(user),
                              params=marshal.dumps(params))
 
     def getjournal(self, tablenm, nodeid):
@@ -361,6 +361,15 @@
     _UNLINK : 'unlink',
 }
 
+_names_to_actionnames = {
+    'create': _CREATE,
+    'set': _SET,
+    'retire': _RETIRE,
+    'restore': _RESTORE,
+    'link': _LINK,
+    'unlink': _UNLINK,
+}
+
 _marker = []
 
 _ALLOWSETTINGPRIVATEPROPS = 0
@@ -1700,7 +1709,8 @@
         d = {}
         for l in entries:
             l = map(eval, l)
-            nodeid, date, user, action, params = l
+            nodeid, jdate, user, action, params = l
+            jdate = int(calendar.timegm(date.Date(jdate).get_tuple()))
             r = d.setdefault(nodeid, [])
             if action == 'set':
                 for propname, value in params.items():
@@ -1716,7 +1726,8 @@
                         pwd.unpack(value)
                         value = pwd
                     params[propname] = value
-            r.append((nodeid, date.Date(date), user, action, params))
+            action = _names_to_actionnames[action]
+            r.append((nodeid, jdate, user, action, params))
 
         for nodeid, l in d.items():
             self.db.setjournal(self.classname, nodeid, l)

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