--- ImageArchive/ImageArchive.py 2004/11/12 12:34:59 1.34
+++ ImageArchive/ImageArchive.py 2004/11/17 15:38:23 1.36
@@ -1,6 +1,6 @@
from OFS.Folder import Folder
from OFS.SimpleItem import SimpleItem
-from Globals import Persistent
+from Globals import Persistent,package_home
from Acquisition import Implicit
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplate import PageTemplate
@@ -58,7 +58,7 @@ class ImageDigilib(Folder,Persistent,Imp
def addMetaObjectForm(self):
"""Add Form"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/addMetaObject.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMetaObject.zpt')).__of__(self)
return pt()
@@ -85,19 +85,32 @@ class ImageDigilib(Folder,Persistent,Imp
os.chmod(filename,0644)
except:
"""hack"""
+ #scale thumb
+
+ self.scaleThumbs()
- os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 100 &"% self.ImageViewerPath)
+ #scale standard
-
+ self.scaleWorkingVersions()
-
- def download(self):
+
+
+ def downloadWorkingVersion(self):
+ """download working version (2000 pixel)"""
+
+ return self.download(fmt="&dw=2000&dh=2000",suffix=".jpg")
+
+ def download(self,fmt="&mo=rawfile,hires",suffix=None):
"""download"""
- path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&mo=rawfile,hires"
+ path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+fmt
+
if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(self.filename):
filename=self.REQUEST.SESSION['filenamesIds'][self.filename][0]+"_"+self.filename
else:
filename=self.filename
+
+ if suffix:
+ filename=os.path.splitext(filename)[0]+suffix
self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%filename)
self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")
@@ -105,7 +118,55 @@ class ImageDigilib(Folder,Persistent,Imp
self.REQUEST.RESPONSE.write(image)
self.REQUEST.RESPONSE.close()
#return self.REQUEST.RESPONSE.redirect(path)
-
+
+ def updateImageForm(self):
+ """form"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','upDateImageForm.zpt')).__of__(self)
+ return pt()
+
+ def updateImage(self,file,RESPONSE):
+ """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)
+
+ versionNumber=getattr(self,'versionNumber',0)+1
+
+ #teste ob version schon existiert
+
+ while os.path.exists(os.path.join(path,"V%i_%s"%(versionNumber,self.getId()))):
+ versionNumber+=1
+
+ #kopieren der bestehenden Version in den Versions ordner.
+ imageNewPath=os.path.join(path,"V%i_%s"%(versionNumber,self.getId()))
+ os.rename(imagePath,imageNewPath)
+
+ #lesen des upload files und schreiben
+ filedata=file.read()
+ f=open(imagePath,"w")
+ f.write(filedata)
+ f.close()
+ try:
+ os.chmod(imagePath,0664)
+ except:
+ """hack"""
+ #scale thumb
+
+ self.scaleThumbs()
+
+ #scale standard
+
+ self.scaleWorkingVersions()
+
+ if RESPONSE:
+ RESPONSE.redirect(self.absolute_url())
+
+ return "done"
+
def thumb(self):
"""show thumb"""
thumbname=os.path.splitext(self.filename)[0]+".jpg"
@@ -118,27 +179,27 @@ class ImageDigilib(Folder,Persistent,Imp
#DEVEL:take nausikaa for server solution
- path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&dw=100&dh=100&mo=lores"
+ path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+"&dw=100&dh=100&mo=lores"
#path="/mpiwg/online/"+self.ImageViewerPath+"/"+thumbname
self.REQUEST.SESSION['string']=""% path
- pt=PageTemplateFile('Products/ImageArchive/zpt/thumb.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumb.zpt')).__of__(self)
return pt()
def index_html(self):
"""show image"""
#DEVELOP: take first one for server
- path="http://content.mpiwg-berlin.mpg.de/zogilib_images?lv=2&fn="+self.ImageViewerPath+"/"+self.filename
+ path="http://content.mpiwg-berlin.mpg.de/zogilib_images?lv=2&fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]
#path="http://localhost:8080/mpiwg/online/"+self.ImageViewerPath+"/"+self.filename
#self.REQUEST.SESSION['string']="
"% path
- #pt=PageTemplateFile('Products/ImageArchive/thumb.zpt').__of__(self)
+ #pt=PageTemplateFile('Products/ImageArchive/thumb.zpt')).__of__(self)
return self.REQUEST.RESPONSE.redirect(path)
def manage_AddImageDigilibForm(self):
"""Nothing yet"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/AddImageDigilibForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddImageDigilibForm.zpt')).__of__(self)
return pt()
def manage_AddImageDigilib(self,id,fileupload,meta=None,RESPONSE=None):
@@ -167,7 +228,7 @@ class ImageCollection(Folder, Persistent
- def createSet(self,RESPONSE=None,local=None):
+ def createSet(self,RESPONSE=None,local=None,version="working"):
"""download aller gewaehlten files"""
tempfile.tempdir="/tmp/archivesImageServer"
@@ -206,7 +267,10 @@ class ImageCollection(Folder, Persistent
RESPONSE.write(str("
Get File: %s
\n"%filename))
if local:
- sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0]
+ if version=="working":
+ sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+id[0]
+ else:
+ sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0]
targetPath=tmpPath+"/"+filename
try:
shutil.copyfile(sourcePath,targetPath)
@@ -216,9 +280,10 @@ class ImageCollection(Folder, Persistent
else:
"""nothing"""
else:
-
- path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+urllib.quote(id[0])+"&mo=rawfile,hires"
-
+ if version=="working":
+ path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000"
+ else:
+ path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&mo=rawfile,hires"
image=urllib.urlopen(path).read()
@@ -255,7 +320,7 @@ class ImageCollection(Folder, Persistent
else:
"""nothing"""
else:
- path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+ids[nr+i]+"&mo=rawfile,hires"
+ path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(ids[nr+i])[0]+"&mo=rawfile,hires"
image=urllib.urlopen(path).read()
@@ -312,9 +377,26 @@ class ImageCollection(Folder, Persistent
def scaleThumbs(self,RESPONSE=None):
"""scale thumbs"""
+ #scale thumbs
+ ret=os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)
+ if RESPONSE:
+ RESPONSE.write(ret.read())
+ RESPONSE.write("\n")
+
+ return "RESCALING STARTED"
+
+ def scaleWorkingVersions(self,RESPONSE=None):
+ """scale working versions"""
- os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)
- return "RESCALING STARTED"
+ #scale standard
+
+ ret=os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/small -scaleto=2000 &"% self.ImageViewerPath)
+ if RESPONSE:
+ RESPONSE.write(ret.read())
+ RESPONSE.write("\n")
+ return "rescaling started"
+
+
def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString):
self.id=id
@@ -329,12 +411,13 @@ class ImageCollection(Folder, Persistent
{'label':'Recalculate Metadata','action':'recalculateMeta'},
{'label':'Import Metadata','action':'importMetaForm'},
{'label':'Rescale thumbs','action':'scaleThumbs'},
+ {'label':'Rescale working version','action':'scaleWorkingVersions'},
{'label':'Weight (ECHO)','action':'weightForm'},
)
def weightForm(self):
"""Weight"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/changeWeight.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeWeight.zpt')).__of__(self)
return pt()
def changeWeight(self,weight,RESPONSE=None):
@@ -347,7 +430,7 @@ class ImageCollection(Folder, Persistent
def importMetaForm(self):
"""import metadata"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/importMeta.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','importMeta.zpt')).__of__(self)
return pt()
def importMeta(self,fileupload,tag):
@@ -485,7 +568,7 @@ class ImageCollection(Folder, Persistent
self.REQUEST.SESSION['filenames']=rc
self.REQUEST.SESSION['filenamesIds']=fnIds
- pt=PageTemplateFile('Products/ImageArchive/zpt/overview_selected.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self)
return pt()
def recalculateMeta(self):
@@ -501,7 +584,7 @@ class ImageCollection(Folder, Persistent
def addImage(self):
"""Add an Image"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/addImage.zpt').__of__(self)
+ 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):
@@ -539,9 +622,17 @@ class ImageCollection(Folder, Persistent
#print newObj
self._setObject(file,newObj)
#print ret
- #pt=PageTemplateFile('Products/ImageArchive/out.zpt').__of__(self)
+ #pt=PageTemplateFile('Products/ImageArchive/out.zpt')).__of__(self)
#print self.ImageStoragePath
- os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)
+
+ #scale thumb
+
+ self.scaleThumbs()
+
+ #scale standard
+
+ self.scaleWorkingVersions()
+
RESPONSE.redirect('manage_main')
@@ -565,17 +656,26 @@ class ImageCollection(Folder, Persistent
except:
"""nothing yet"""
#print ret
- #pt=PageTemplateFile('Products/ImageArchive/out.zpt').__of__(self)
+ #pt=PageTemplateFile('Products/ImageArchive/out.zpt')).__of__(self)
#print self.ImageStoragePath
- os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 100 &"% self.ImageViewerPath)
- RESPONSE.redirect('manage_main')
+
+ #scale thumb
+
+ self.scaleThumbs()
+
+ #scale standard
+
+ self.scaleWorkingVersions()
+
+ if RESPONSE:
+ RESPONSE.redirect('manage_main')
def ImageCollection_config(self):
"""Nothing yet"""
if not hasattr(self,'defaultMetaString'):
self.defaultMetaString=""
- pt=PageTemplateFile('Products/ImageArchive/zpt/ChangeImageCollectionForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeImageCollectionForm.zpt')).__of__(self)
return pt()
def ChangeImageCollection(self,title,ImageStoragePath,ImageViewerPath,defaultMetaString,RESPONSE=None):
@@ -738,13 +838,13 @@ class ImageCollection(Folder, Persistent
def setColTimesRowForm(self):
"""form for matrix setting"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/selectColTimesRow.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','selectColTimesRow.zpt')).__of__(self)
return pt()
def setDone(self):
"""done"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/changedColTimesRow.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changedColTimesRow.zpt')).__of__(self)
return pt()
def setColTimesRow(self,cols,rows):
@@ -846,40 +946,40 @@ class ImageCollection(Folder, Persistent
def thumblistSelected_old(self):
"""main template collection"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/thumbselected.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbselected.zpt')).__of__(self)
return pt()
def thumblistSelected(self):
"""main template collection"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/thumbselected2.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbselected2.zpt')).__of__(self)
return pt()
def thumblist_old(self):
"""main template collection"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/thumbs.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbs.zpt')).__of__(self)
return pt()
def thumblist(self):
"""main template collection"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/thumb2.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumb2.zpt')).__of__(self)
return pt()
def thumblistNewWindow(self):
"""Thumbs mit clik neues Fenster oeffnen"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/thumbNewWindow.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbNewWindow.zpt')).__of__(self)
return pt()
def navig_selected_html(self):
"""navigation"""
#self.REQUEST.SESSION['URL']=self.REQUEST['URL0']
- pt=PageTemplateFile('Products/ImageArchive/zpt/navigation_selected.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','navigation_selected.zpt')).__of__(self)
return pt()
def navig_html(self):
"""navigation"""
#self.REQUEST.SESSION['URL']=self.REQUEST['URL0']
- pt=PageTemplateFile('Products/ImageArchive/zpt/navigation.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','navigation.zpt')).__of__(self)
return pt()
@@ -890,7 +990,7 @@ class ImageCollection(Folder, Persistent
else:
filen=""
self.REQUEST.SESSION['filename']=filen
- pt=PageTemplateFile('Products/ImageArchive/zpt/overview_selected2.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected2.zpt')).__of__(self)
return pt()
def index_html(self):
@@ -909,12 +1009,12 @@ class ImageCollection(Folder, Persistent
self.REQUEST.SESSION['showall']=self.REQUEST.SESSION.get('showall','no')
- pt=PageTemplateFile('Products/ImageArchive/zpt/overview.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview.zpt')).__of__(self)
return pt()
def manage_AddImageCollectionForm(self):
"""Nothing yet"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/AddImageCollectionForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddImageCollectionForm.zpt')).__of__(self)
return pt()
def manage_AddImageCollection(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString,RESPONSE=None):
@@ -954,7 +1054,7 @@ class ImageCollectionIFrame(ImageCollect
self.REQUEST.SESSION['filename']=filen
- pt=PageTemplateFile('Products/ImageArchive/zpt/IFrameMain.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','IFrameMain.zpt')).__of__(self)
return pt()
def iframe_html(self):
@@ -964,13 +1064,13 @@ class ImageCollectionIFrame(ImageCollect
else:
filen=""
self.REQUEST.response.setCookie('filename',filen)
- pt=PageTemplateFile('Products/ImageArchive/zpt/IFrameOverview.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','IFrameOverview.zpt')).__of__(self)
return pt()
def manage_AddImageCollectionIFrameForm(self):
"""Nothing yet"""
- pt=PageTemplateFile('Products/ImageArchive/zpt/AddImageCollectionIFrameForm.zpt').__of__(self)
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddImageCollectionIFrameForm.zpt')).__of__(self)
return pt()
def manage_AddImageCollectionIFrame(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString,RESPONSE=None):