changeset 2498:f9709e575cf4

export now stores file "content" in separate files in export directory
author Richard Jones <richard@users.sourceforge.net>
date Thu, 24 Jun 2004 07:10:12 +0000
parents e27578fc4e37
children 222ec8915b42
files roundup/backends/back_metakit.py
diffstat 1 files changed, 27 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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.'

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