--- ImageArchive/ImageArchive.py 2004/11/24 17:03:23 1.40 +++ ImageArchive/ImageArchive.py 2004/12/23 15:12:59 1.43 @@ -12,6 +12,7 @@ import xml.dom.minidom import operator import tempfile import shutil +from types import * try: @@ -23,6 +24,7 @@ except: manage_options=() + def splitPath(str): str2=str.replace("\\","/") return os.path.split(str2)[1] @@ -92,7 +94,7 @@ class ImageDigilib(Folder,Persistent,Imp f.write(filedata) f.close() try: - os.chmod(filename,0644) + os.chmod(filename,0664) except: """hack""" #scale thumb @@ -134,12 +136,48 @@ class ImageDigilib(Folder,Persistent,Imp pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','upDateImageForm.zpt')).__of__(self) return pt() - def updateImage(self,file,RESPONSE): + def renameImageForm(self): + """form""" + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','renameImageForm.zpt')).__of__(self) + return pt() + + def renameImage(self,newname,RESPONSE=None): + """umbenennen""" + #umbennen des files im folder + oldname=self.getId() + self.aq_parent.manage_renameObjects(ids=[oldname],new_ids=[newname]) + self.title=newname[0:] + self.filename=newname[0:] + #umbennen des files auf dem server + oldpath=os.path.join(self.ImageStoragePath,oldname) + newpath=os.path.join(self.ImageStoragePath,newname) + os.rename(oldpath,newpath) + + #umbenennen des versionsfolders + oldfolder=os.path.join(self.ImageStoragePath,"."+oldname+".dir") + if os.path.exists(oldfolder): + newfolder=os.path.join(self.ImageStoragePath,"."+newname+".dir") + os.rename(oldfolder,newfolder) + + #scale thumb + + self.scaleThumbs() + + #scale standard + + self.scaleWorkingVersions() + + + if RESPONSE: + RESPONSE.redirect(self.aq_parent.absolute_url()+"?filename="+self.filename) + + + def updateImage(self,file,rename=None,RESPONSE=None): """lade neues Version des Bildes""" #teste ob Dokumenten ordner schon vorhanden imagePath=os.path.join(self.ImageStoragePath,self.getId()) path=os.path.join(self.ImageStoragePath,"."+self.getId()+".dir") - print "path",path + if not os.path.exists(path): os.mkdir(path,0775) os.chmod(path,0775) @@ -172,9 +210,14 @@ class ImageDigilib(Folder,Persistent,Imp self.scaleWorkingVersions() + if rename: + self.renameImage(file.filename) + + if RESPONSE: - RESPONSE.redirect(self.absolute_url()) + RESPONSE.redirect(self.aq_parent.absolute_url()+"?filename="+self.filename) + return "done" def thumb(self): @@ -210,6 +253,7 @@ def manage_AddImageDigilibForm(self): def manage_AddImageDigilib(self,id,fileupload,meta=None,RESPONSE=None): """Add ImageCollection""" + #fileupload=self.REQUEST['fileupload'] fn=splitPath(fileupload.filename) newObj=ImageDigilib(id,fn,meta) @@ -221,7 +265,9 @@ def manage_AddImageDigilib(self,id,fileu RESPONSE.redirect('manage_main') + class ImageCollection(Folder, Persistent, Implicit,ECHO_basis): + """Sammelordner für Bilder""" meta_type="ImageCollection" @@ -238,6 +284,7 @@ class ImageCollection(Folder, Persistent def createSet(self,RESPONSE=None,local=None,version="working"): """download aller gewaehlten files""" + storeTempDir=tempfile.tempdir tempfile.tempdir="/tmp/archivesImageServer" tmpPath=tempfile.mktemp() @@ -304,8 +351,16 @@ class ImageCollection(Folder, Persistent #folgeseiten if int(self.REQUEST.SESSION['filenamesIds'][id[0]][1])>1: ids=self.show_thumbs() - nr=ids.index(id[0]) - + try: + nr=ids.index(id[0]) + except: + if RESPONSE: + RESPONSE.write(str("

Error in File: %s (possible missing)
\n"%id[0])) + else: + """nothing""" + + nr=0 + numberOfPages=self.REQUEST.SESSION['filenamesIds'][id[0]][1] for k in range(int(numberOfPages)-1): i=k+1 @@ -413,10 +468,7 @@ class ImageCollection(Folder, Persistent self.ImageViewerPath=ImageViewerPath self.defaultMetaString=defaultMetaString - if ECHO_basis: - optTMP= Folder.manage_options+ECHO_basis.manage_options - else: - optTMP= Folder.manage_options + optTMP= Folder.manage_options manage_options = optTMP+( {'label':'Main Config','action':'ImageCollection_config'}, @@ -595,11 +647,13 @@ class ImageCollection(Folder, Persistent def addImage(self): """Add an Image""" + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addImage.zpt')).__of__(self) return pt() def addImage2(self,fileupload,meta,use_default=None,RESPONSE=None): """Add""" + #print "FU",fileupload if use_default: @@ -610,7 +664,7 @@ class ImageCollection(Folder, Persistent else: meta=None fn=splitPath(fileupload.filename) - + manage_AddImageDigilib(self,fn,fileupload,meta=meta) return RESPONSE.redirect(self.REQUEST['URL1']+'/'+fn) #return self.REQUEST['URL1']+'/'+fileupload.filename