--- versionedFile/extVersionedFile.py 2007/09/10 16:34:16 1.7 +++ versionedFile/extVersionedFile.py 2007/09/10 17:40:37 1.8 @@ -186,18 +186,13 @@ class extVersionedFileFolder(Folder,ECHO return pt() def importFolder(self,path,comment="",author=None,lockedBy=None,RESPONSE=None): - """importiere inhalt eines folders""" - + """import contents of a folder on the server""" for fileName in os.listdir(path): - if os.path.isfile(os.path.join(path,fileName)): - manage_addextVersionedFile(self,fileName,'','') - id=fileName - ob=self._getOb(fileName) - ob.title=id - file2=file(os.path.join(path,fileName)) + fn = os.path.join(path,fileName) + if os.path.isfile(fn): + f = file(fn) + self.addFile(vC=comment, file=f, author=author) - obj=ob.manage_addextVersionedFileObject(id,comment,author,file2,content_type='') - if RESPONSE: RESPONSE.redirect(self.REQUEST['URL1']) @@ -216,6 +211,7 @@ class extVersionedFileFolder(Folder,ECHO downloadZip=generateDownloadZip(self,self.absolute_url()) downloadZip() return downloadZip.getResult() + ## if not threadName or threadName=="": ## threadStart=generateDownloadZip(self,self.absolute_url()) ## thread=Thread(target=threadStart) @@ -435,7 +431,7 @@ class extVersionedFileFolder(Folder,ECHO return out() - def addFile(self,vC,file,author,newName='',content_type='',RESPONSE=None): + def addFile(self,vC,file,author='',newName='',content_type='',RESPONSE=None): """ add a new file""" if newName=='': filename=file.filename @@ -448,16 +444,18 @@ class extVersionedFileFolder(Folder,ECHO id=newName vC=self.REQUEST.form['vC'] - manage_addextVersionedFile(self,id,'','') - #if (getattr(self,'commentNonEmpty',0)==1) and vC.strip()=="": - ob=self._getOb(id) - ob.title=id + # get new extVersionedFile + vf = self._newVersionedFile(id,title=id) + #if (getattr(self,'commentNonEmpty',0)==1) and vC.strip()=="": + # add file to this folder + self._setObject(id,vf) file2=file + # add its content + logging.info("ADD: %s"%repr(vf)) + obj=vf.addContentObject(id,vC,author=author,file=file2,content_type=content_type) - logging.info("ADD: %s"%repr(ob)) - obj=ob.manage_addVersionedFileObject(id,vC,author,file2,content_type=content_type) - self.REQUEST.SESSION['objID']=ob.getId() + self.REQUEST.SESSION['objID']=vf.getId() self.REQUEST.SESSION['objID_parent']=None if obj.getSize()==0: @@ -467,6 +465,11 @@ class extVersionedFileFolder(Folder,ECHO RESPONSE.redirect(self.REQUEST['URL1']) + def _newVersionedFile(self, id, title='', lockedBy=None, author=None): + """factory for versioned files. to be overridden in derived classes.""" + return extVersionedFile(id, title, lockedBy=lockedBy, author=author) + + def deleteEmptyObject(self,submit,RESPONSE=None): """deleteemptyobject""" if submit=="delete it": @@ -486,6 +489,7 @@ class extVersionedFileFolder(Folder,ECHO for (id,vf) in self.getVersionedFiles(): vf.fixVersionNumbers() + manage_addextVersionedFileFolderForm=DTMLFile('dtml/extfolderAdd', globals())