--- ImageArchive/ImageArchive.py 2004/11/17 10:34:20 1.35
+++ ImageArchive/ImageArchive.py 2004/11/24 17:03:23 1.40
@@ -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
@@ -13,6 +13,16 @@ import operator
import tempfile
import shutil
+
+try:
+ from Products.ECHO_content.ECHO_collection import ECHO_basis
+except:
+ print "ECHO Elements not imported"
+ class ECHO_basis:
+ """leer"""
+ manage_options=()
+
+
def splitPath(str):
str2=str.replace("\\","/")
return os.path.split(str2)[1]
@@ -58,7 +68,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()
@@ -94,6 +104,7 @@ class ImageDigilib(Folder,Persistent,Imp
self.scaleWorkingVersions()
+
def downloadWorkingVersion(self):
"""download working version (2000 pixel)"""
@@ -117,7 +128,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"
@@ -133,24 +192,20 @@ class ImageDigilib(Folder,Persistent,Imp
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://localhost:8080/mpiwg/online/"+self.ImageViewerPath+"/"+self.filename
- #self.REQUEST.SESSION['string']=""% path
- #pt=PageTemplateFile('Products/ImageArchive/thumb.zpt').__of__(self)
+ path="http://content.mpiwg-berlin.mpg.de/zogilib_images?lv=2&fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]
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):
@@ -166,10 +221,12 @@ def manage_AddImageDigilib(self,id,fileu
RESPONSE.redirect('manage_main')
-class ImageCollection(Folder, Persistent, Implicit):
+class ImageCollection(Folder, Persistent, Implicit,ECHO_basis):
"""Sammelordner für Bilder"""
meta_type="ImageCollection"
+
+
genericMetaDataType="leiden_meta"
leiden_meta_fields=['image_id','date','country','place','people','description','photographer']
@@ -177,8 +234,8 @@ class ImageCollection(Folder, Persistent
defaultMetaString="http://fm-web.mpiwg-berlin.mpg.de:8050/FMRes/FMPJS?-db=Wissenschaftlerportraits.fp5&-layID=69&-token=25&-max=1&-format=formvwcss.htm&-mode=browse&images::filename=%s&-find" ## TEST FUER IMAGEDATENBANK WP
-
-
+
+
def createSet(self,RESPONSE=None,local=None,version="working"):
"""download aller gewaehlten files"""
tempfile.tempdir="/tmp/archivesImageServer"
@@ -219,7 +276,7 @@ class ImageCollection(Folder, Persistent
if local:
if version=="working":
- sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+id[0]
+ sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+os.path.splitext(id[0])[0]+".jpg"
else:
sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0]
targetPath=tmpPath+"/"+filename
@@ -356,32 +413,25 @@ class ImageCollection(Folder, Persistent
self.ImageViewerPath=ImageViewerPath
self.defaultMetaString=defaultMetaString
- manage_options = Folder.manage_options+(
+ if ECHO_basis:
+ optTMP= Folder.manage_options+ECHO_basis.manage_options
+ else:
+ optTMP= Folder.manage_options
+
+ manage_options = optTMP+(
{'label':'Main Config','action':'ImageCollection_config'},
{'label':'Import','action':'ImportFiles'},
{'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)
- return pt()
-
- def changeWeight(self,weight,RESPONSE=None):
- """Change weight"""
- self.weight=weight
-
- if RESPONSE is not None:
- RESPONSE.redirect('manage_main')
-
+
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):
@@ -492,7 +542,7 @@ class ImageCollection(Folder, Persistent
url=urllib.unquote(url)
xmldoc=urllib.urlopen(url).read()
- #print url
+ #return xmldoc
try:
dom=xml.dom.minidom.parseString(xmldoc)
except:
@@ -503,7 +553,9 @@ class ImageCollection(Folder, Persistent
fnIds={}
for image in images:
imagename=image.getElementsByTagName('imagename')[0]
- text=getText(imagename.childNodes)
+
+
+
idnr=image.getElementsByTagName('idnr')[0]
id=getText(idnr.childNodes)
numberOfPages=image.getElementsByTagName('numberOfPages')[0]
@@ -512,14 +564,22 @@ class ImageCollection(Folder, Persistent
nop=int(nopT)
except:
nop=0
- if not text=="":
- rc.append((str(text),id,nop))
- fnIds[str(text)]=(id,nop)
+ texts=getText(imagename.childNodes).split("\n") #mehrere bilder in return getrennter liste
+ for text in texts:
+ if not text=="":
+ try:
+ rc.append((str(text),id,nop))
+ fnIds[str(text)]=(id,nop)
+ except:
+ rc.append((repr(text),id,nop))
+ fnIds[repr(text)]=(id,nop)
+
+
rc.sort()
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):
@@ -535,7 +595,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):
@@ -573,7 +633,7 @@ 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
#scale thumb
@@ -607,7 +667,7 @@ 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
#scale thumb
@@ -626,7 +686,7 @@ class ImageCollection(Folder, Persistent
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):
@@ -789,13 +849,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):
@@ -897,40 +957,41 @@ 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()
@@ -941,7 +1002,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):
@@ -951,21 +1012,21 @@ class ImageCollection(Folder, Persistent
else:
filen=""
- self.REQUEST.SESSION['filename']=filen
-
+ self.REQUEST.SESSION['filename']=filen[0:]
+
if self.REQUEST.has_key('showall'):
self.REQUEST.SESSION['showall']=self.REQUEST.get('showall')
else:
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):
@@ -1005,7 +1066,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):
@@ -1015,13 +1076,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):