changeset 3365:e2d65f6c8d83

handle dropped properies in rdbms/metakit journal export [SF#1203569]
author Richard Jones <richard@users.sourceforge.net>
date Fri, 24 Jun 2005 06:38:14 +0000
parents 7bc1e9c42a26
children a23863a95326
files CHANGES.txt roundup/backends/back_metakit.py roundup/backends/rdbms_common.py
diffstat 3 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES.txt	Fri Jun 24 06:27:45 2005 +0000
+++ b/CHANGES.txt	Fri Jun 24 06:38:14 2005 +0000
@@ -24,6 +24,7 @@
 - fixed templating menu() sort_on handling (sf bug 1221936)
 - allow specification of pagesize, sorting and filtering in "classhelp"
   popups (sf bug 1211800)
+- handle dropped properies in rdbms/metakit journal export (sf bug 1203569)
 
 
 2005-05-02 0.8.3
--- a/roundup/backends/back_metakit.py	Fri Jun 24 06:27:45 2005 +0000
+++ b/roundup/backends/back_metakit.py	Fri Jun 24 06:38:14 2005 +0000
@@ -1,4 +1,4 @@
-# $Id: back_metakit.py,v 1.95 2005-06-08 03:41:46 anthonybaxter Exp $
+# $Id: back_metakit.py,v 1.96 2005-06-24 06:38:14 richard Exp $
 '''Metakit backend for Roundup, originally by Gordon McMillan.
 
 Known Current Bugs:
@@ -1705,7 +1705,12 @@
             for nodeid, date, user, action, params in self.history(nodeid):
                 date = date.get_tuple()
                 if action == 'set':
+                    export_data = {}
                     for propname, value in params.items():
+                        if not properties.has_key(propname):
+                            # property no longer in the schema
+                            continue
+
                         prop = properties[propname]
                         # make sure the params are eval()'able
                         if value is None:
@@ -1716,7 +1721,8 @@
                             value = value.get_tuple()
                         elif isinstance(prop, Password):
                             value = str(value)
-                        params[propname] = value
+                        export_data[propname] = value
+                    params = export_data
                 l = [nodeid, date, user, action, params]
                 r.append(map(repr, l))
         return r
--- a/roundup/backends/rdbms_common.py	Fri Jun 24 06:27:45 2005 +0000
+++ b/roundup/backends/rdbms_common.py	Fri Jun 24 06:38:14 2005 +0000
@@ -1,4 +1,4 @@
-# $Id: rdbms_common.py,v 1.155 2005-05-18 05:21:14 richard Exp $
+# $Id: rdbms_common.py,v 1.156 2005-06-24 06:38:14 richard Exp $
 ''' Relational database (SQL) backend common code.
 
 Basics:
@@ -2491,7 +2491,12 @@
             for nodeid, date, user, action, params in self.history(nodeid):
                 date = date.get_tuple()
                 if action == 'set':
+                    export_data = {}
                     for propname, value in params.items():
+                        if not properties.has_key(propname):
+                            # property no longer in the schema
+                            continue
+
                         prop = properties[propname]
                         # make sure the params are eval()'able
                         if value is None:
@@ -2502,7 +2507,8 @@
                             value = value.get_tuple()
                         elif isinstance(prop, Password):
                             value = str(value)
-                        params[propname] = value
+                        export_data[propname] = value
+                    params = export_data
                 l = [nodeid, date, user, action, params]
                 r.append(map(repr, l))
         return r

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