# HG changeset patch # User Richard Jones # Date 1088061012 0 # Node ID f9709e575cf4f1888cf248ae8c74cfe4ead3d28e # Parent e27578fc4e37ad09514ae734f1d13521789a392c export now stores file "content" in separate files in export directory diff -r e27578fc4e37 -r f9709e575cf4 roundup/backends/back_metakit.py --- a/roundup/backends/back_metakit.py Thu Jun 24 07:05:04 2004 +0000 +++ b/roundup/backends/back_metakit.py Thu Jun 24 07:10:12 2004 +0000 @@ -1,4 +1,4 @@ -# $Id: back_metakit.py,v 1.74 2004-06-11 15:50:24 wc2so1 Exp $ +# $Id: back_metakit.py,v 1.75 2004-06-24 07:10:12 richard Exp $ '''Metakit backend for Roundup, originally by Gordon McMillan. Known Current Bugs: @@ -44,7 +44,7 @@ from roundup import hyperdb, date, password, roundupdb, security import metakit from sessions_dbm import Sessions, OneTimeKeys -import re, marshal, os, sys, time, calendar +import re, marshal, os, sys, time, calendar, shutil from indexer_dbm import Indexer import locking from roundup.date import Range @@ -496,7 +496,7 @@ ndx = self.getview(READWRITE).append(rowdict) propvalues['#ISNEW'] = 1 try: - self.set(str(newid), **propvalues) + self.set_inner(str(newid), **propvalues) except Exception: self.maxid -= 1 raise @@ -801,7 +801,7 @@ oldnode[key] = oldvalue # nothing to do? - if not propvalues: + if not isnew and not propvalues: return propvalues, oldnode if not propvalues.has_key('activity'): row.activity = int(time.time()) @@ -1832,6 +1832,29 @@ os.makedirs(d) return os.path.join(d, nm) + def export_files(self, dirname, nodeid): + ''' Export the "content" property as a file, not csv column + ''' + source = self.gen_filename(nodeid) + x, filename = os.path.split(source) + x, subdir = os.path.split(x) + dest = os.path.join(dirname, self.classname+'-files', subdir, filename) + if not os.path.exists(os.path.dirname(dest)): + os.makedirs(os.path.dirname(dest)) + shutil.copyfile(source, dest) + + def import_files(self, dirname, nodeid): + ''' Import the "content" property as a file + ''' + dest = self.gen_filename(nodeid) + x, filename = os.path.split(dest) + x, subdir = os.path.split(x) + source = os.path.join(dirname, self.classname+'-files', subdir, + filename) + if not os.path.exists(os.path.dirname(dest)): + os.makedirs(os.path.dirname(dest)) + shutil.copyfile(source, dest) + def get(self, nodeid, propname, default=_marker, cache=1): if propname == 'content': poss_msg = 'Possibly an access right configuration problem.'