--- ImageArchive/ImageArchive.py 2005/04/28 22:12:21 1.54 +++ ImageArchive/ImageArchive.py 2005/04/29 09:45:57 1.55 @@ -27,6 +27,8 @@ except: manage_options=() +tdir = "/mpiwg/temp/tmp/archivesImageServer/" +#tdir="/tmp/archivesImageServer/" def splitPath(str): str2=str.replace("\\","/") @@ -52,6 +54,7 @@ def getTextFromNode(nodename): class generateSet: """generateSetThread""" + def __init__(self,filenames,filenamesIds,ImageViewerPath,ids,url,local=None,version="full"): """init generateSet""" self.filenames=filenames @@ -63,11 +66,12 @@ class generateSet: self.version=version self.done=None + def __call__(self): """call generate Set""" storeTempDir=tempfile.tempdir - tempfile.tempdir="/mpiwg/temp/tmp/archivesImageServer" + tempfile.tempdir=tdir tmpPath=tempfile.mktemp() tmpZip=tempfile.mktemp()+".zip" @@ -509,6 +513,8 @@ class ImageCollection(Folder, Persistent zipThreads={} + zipThreads2={} + genericMetaDataType="leiden_meta" leiden_meta_fields=['image_id','date','country','place','people','description','photographer'] @@ -536,6 +542,7 @@ class ImageCollection(Folder, Persistent self.zipThreads[thread.getName()[0:]]=threadStart + self.zipThreads2[thread.getName()[0:]]=thread self.REQUEST.SESSION['threadName']=thread.getName()[0:] wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template']) if wait_template: @@ -557,6 +564,9 @@ class ImageCollection(Folder, Persistent else: if self.zipThreads[threadName].isDone(): self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult() + self.zipThreads2[threadName].join() + del(self.zipThreads2[threadName]) + del(self.zipThreads[threadName]) pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_result.zpt')).__of__(self) return pt() @@ -569,11 +579,24 @@ class ImageCollection(Folder, Persistent + + def checkThreads(self): + """teste running threads""" + ret=""" + +

Threads of %s

"""%(self.absolute_url(),self.getId()) + + for threadName in self.zipThreads.keys(): + if self.zipThreads2[threadName].isAlive(): + ret+="

%s --> alive

"%threadName + else: + ret+="

%s --> dead

"%threadName + return ret+"" - def downloadSet(self,fn): """download prepared set""" - filename="/mpiwg/temp/tmp/archivesImageServer/"+fn + filename=os.path.join(tdir,fn) self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"image.zip")