--- cdli/cdli_files.py 2006/10/05 06:38:13 1.47 +++ cdli/cdli_files.py 2006/10/05 07:22:58 1.48 @@ -1,5 +1,4 @@ """CDLI extensions of the filearchive""" -from Products.versionedFile.versionedFile import * from Products.versionedFile.extVersionedFile import * from Products.ZCatalog.CatalogPathAwareness import CatalogAware from tempfile import mkstemp,mkdtemp @@ -142,7 +141,7 @@ class uploadATFfinallyThread(Thread): if len(founds)>0: SESSION['author']=str(username) self.result+="

Changing : %s"%fn - founds[0].getObject().manage_addCDLIFileObject('',comment,SESSION['author'],file=file(os.path.join(SESSION['tmpdir'],fn))) + founds[0].getObject().manage_addCDLIFileObject('',comment,SESSION['author'],file=os.path.join(SESSION['tmpdir'],fn,from_tmp=True)) #now add the new files @@ -315,7 +314,7 @@ class uploadATFThread(Thread): data=file(os.path.join(dir,fn)).read() #status,msg=checkFile(fn,data,dir) status=True - msg="" + msg="" if not status: # error errors.append((fn,msg)) else: @@ -525,7 +524,7 @@ class BasketObject_old(Folder): ret="" lockedObjects={} - print "x",self.temp_folder.downloadCounter + if self.temp_folder.downloadCounter > 10: return """I am sorry, currently the server has to many requests for downloads, please come back later!""" @@ -1311,11 +1310,11 @@ class CDLIFileObject(CatalogAware,extVer manage_addCDLIFileObjectForm=DTMLFile('dtml/fileAdd', globals(),Kind='CDLIFileObject',kind='CDLIFileObject', version='1') def manage_addCDLIFileObject(self,id,vC='',author='', file='',title='',precondition='', content_type='', - REQUEST=None): + from_tmp=False,REQUEST=None): """Add a new File object. Creates a new File object 'id' with the contents of 'file'""" - + id=str(id) title=str(title) content_type=str(content_type) @@ -1335,8 +1334,11 @@ def manage_addCDLIFileObject(self,id,vC= # Now we "upload" the data. By doing this in two steps, we # can use a database trick to make the upload more efficient. - if file: + + if file and not from_tmp: self._getOb(id).manage_upload(file) + elif file and from_tmp: + self._getOb(id).manage_upload_from_tmp(file) if content_type: self._getOb(id).content_type=content_type @@ -1411,8 +1413,10 @@ class CDLIFile(extVersionedFile,CatalogA precondition='', content_type='', changeName='no',newName='', - come_from=None,RESPONSE=None): + come_from=None, + from_tmp=False,RESPONSE=None): """add""" + try: #TODO: der ganze vC unsinn muss ueberarbeitet werden vC=self.REQUEST['vC'] except: @@ -1445,8 +1449,9 @@ class CDLIFile(extVersionedFile,CatalogA id=tmp[0]+"_V%i"%self.getVersion() - manage_addCDLIFileObject(self,id,vC,author,file,id,precondition, content_type) - objs=self.ZopeFind(self,obj_ids=[id])[0][1].setVersionNumber(int(self.getVersion())) + manage_addCDLIFileObject(self,id,vC,author,file,id,precondition, content_type,from_tmp=from_tmp) + #objs=self.ZopeFind(self,obj_ids=[id])[0][1].setVersionNumber(int(self.getVersion())) + objs=getattr(self,id).setVersionNumber(int(self.getVersion())) try: #FIXME: wozu ist das gut? self.REQUEST.SESSION['objID_parent']=self.getId() @@ -1497,7 +1502,7 @@ def checkFile(filename,data,folder): """check the files""" # first check the file name fn=filename.split(".") # no extension - print "_____",fn + if not fn[0][0]=="P": return False,"P missing in the filename" elif len(fn[0])!=7: @@ -1509,7 +1514,7 @@ def checkFile(filename,data,folder): ret= out.close() if value: - print "ERRR" + return False,"atf checker error: %s"%value else: return True,"" @@ -1693,7 +1698,7 @@ class CDLIFileFolder(extVersionedFileFol catalog=getattr(self,self.default_catalog) #tf,tfilename=mkstemp() - print self.temp_folder.downloadCounter + if self.temp_folder.downloadCounter > 5: return """I am sorry, currently the server has to many requests for downloads, please come back later!""" @@ -2053,14 +2058,14 @@ class CDLIRoot(Folder): else: fobj2=obj2[0][1] - file2=file(os.path.join(folderName,f)) + file2=os.path.join(folderName,f) id=f manage_addCDLIFile(fobj2,f,'','') id=f ob=fobj2._getOb(f) ob.title=id - manage_addCDLIFileObject(ob,id,comment,author,file2,content_type='') + manage_addCDLIFileObject(ob,id,comment,author,file2,content_type='',from_tmp=True) self.CDLICatalog.catalog_object(ob) #self.CDLICatalog.manage_catalogFoundItems(obj_ids=[id],search_sub=1) #self.CDLICatalog.manage_catalogObject(self.REQUEST, self.REQUEST.RESPONSE, 'CDLICatalog', urlparse.urlparse(ob.absolute_url())[1])