version 1.53, 2005/04/28 22:03:44
|
version 1.64, 2005/10/07 10:51:38
|
Line 4 from Globals import Persistent,package_h
|
Line 4 from Globals import Persistent,package_h
|
from Acquisition import Implicit |
from Acquisition import Implicit |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplate import PageTemplate |
from Products.PageTemplates.PageTemplate import PageTemplate |
|
from xmlrpclib import ServerProxy |
import re |
import re |
import os |
import os |
import os.path |
import os.path |
Line 16 from types import *
|
Line 17 from types import *
|
import time |
import time |
from threading import Thread |
from threading import Thread |
import Queue |
import Queue |
|
import cgi |
|
|
|
from AccessControl import ClassSecurityInfo |
|
|
|
try: |
|
from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder |
|
except: |
|
print "ZSQL Extend Folder nicht importiert" |
|
print "Metadatendfolder funktioniert nicht!!!" |
|
|
|
|
|
|
try: |
try: |
from Products.ECHO_content.ECHO_collection import ECHO_basis |
from Products.ECHO_content.ECHO_collection import ECHO_basis |
Line 27 except:
|
Line 39 except:
|
manage_options=() |
manage_options=() |
|
|
|
|
|
tdir = "/mpiwg/temp/tmp/archivesImageServer/" |
|
#tdir="/tmp/archivesImageServer/" |
|
|
def splitPath(str): |
def splitPath(str): |
str2=str.replace("\\","/") |
str2=str.replace("\\","/") |
Line 52 def getTextFromNode(nodename):
|
Line 66 def getTextFromNode(nodename):
|
class generateSet: |
class generateSet: |
"""generateSetThread""" |
"""generateSetThread""" |
|
|
def __init__(self,filenames,filenamesIds,ImageViewerPath,ids,url,local=None,version="full"): |
|
|
def __init__(self,filenames,filenamesIds,ImageViewerPath,ids,url,local=None,version="working"): |
"""init generateSet""" |
"""init generateSet""" |
self.filenames=filenames |
self.filenames=filenames |
self.filenamesIds=filenamesIds |
self.filenamesIds=filenamesIds |
Line 63 class generateSet:
|
Line 78 class generateSet:
|
self.version=version |
self.version=version |
self.done=None |
self.done=None |
|
|
|
|
def __call__(self): |
def __call__(self): |
"""call generate Set""" |
"""call generate Set""" |
|
|
storeTempDir=tempfile.tempdir |
storeTempDir=tempfile.tempdir |
tempfile.tempdir="/tmp/archivesImageServer" |
tempfile.tempdir=tdir |
|
|
tmpPath=tempfile.mktemp() |
tmpPath=tempfile.mktemp() |
tmpZip=tempfile.mktemp()+".zip" |
tmpZip=tempfile.mktemp()+".gtz" |
tmpFn=os.path.split(tmpZip)[1] |
tmpFn=os.path.split(tmpZip)[1] |
|
|
if not os.path.exists(tempfile.tempdir): |
if not os.path.exists(tempfile.tempdir): |
Line 92 class generateSet:
|
Line 109 class generateSet:
|
|
|
self.response+=str("<p>Get File: %s<br>\n"%filename) |
self.response+=str("<p>Get File: %s<br>\n"%filename) |
|
|
|
|
if self.local: |
if self.local: |
|
|
if self.version=="working": |
if self.version=="working": |
|
|
sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+os.path.splitext(id[0])[0]+".jpg" |
sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+os.path.splitext(id[0])[0]+".jpg" |
else: |
else: |
sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0] |
sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0] |
Line 104 class generateSet:
|
Line 124 class generateSet:
|
self.response+=(str("<p>Error in File: %s (possible missing)<br>\n"%filename)) |
self.response+=(str("<p>Error in File: %s (possible missing)<br>\n"%filename)) |
else: |
else: |
if self.version=="working": |
if self.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" |
path=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000" |
else: |
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" |
path=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&mo=rawfile,hires" |
image=urllib.urlopen(path).read() |
image=urllib.urlopen(path).read() |
|
|
|
|
Line 117 class generateSet:
|
Line 137 class generateSet:
|
fh.close() |
fh.close() |
|
|
#folgeseiten |
#folgeseiten |
|
|
if int(self.filenamesIds[id[0]][1])>1: |
if int(self.filenamesIds[id[0]][1])>1: |
#ids=self.show_thumbs() |
#ids=self.show_thumbs() |
|
|
try: |
try: |
nr=self.ids.index(id[0]) |
nr=self.ids.index(id[0]) |
except: |
except: |
self.reponse+=str("<p>Error in File: %s (possible missing)<br>\n"%id[0]) |
self.response+=str("<p>Error in File: %s (possible missing)<br>\n"%id[0]) |
|
|
|
|
nr=0 |
nr=0 |
Line 139 class generateSet:
|
Line 160 class generateSet:
|
self.response+=str("<p>Get File: %s<br>\n"%filename) |
self.response+=str("<p>Get File: %s<br>\n"%filename) |
|
|
if self.local: |
if self.local: |
sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+self.ids[nr+1] |
sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+self.ids[nr+i] |
targetPath=tmpPath+"/"+filename |
targetPath=tmpPath+"/"+filename |
try: |
try: |
shutil.copyfile(sourcePath,targetPath) |
shutil.copyfile(sourcePath,targetPath) |
|
|
except: |
except: |
self.response+=str("<p>Error in File: %s (missing?)<br>\n"%filename) |
self.response+=str("<p>Error in File: %s (missing?)<br>\n"%filename) |
|
|
else: |
else: |
path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(ids[nr+i])[0]+"&mo=rawfile,hires" |
path=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(ids[nr+i])[0]+"&mo=rawfile,hires" |
|
|
image=urllib.urlopen(path).read() |
image=urllib.urlopen(path).read() |
|
|
Line 157 class generateSet:
|
Line 179 class generateSet:
|
fh.close() |
fh.close() |
|
|
self.response+="<h3>2. step: creating the downloadable file</h3>" |
self.response+="<h3>2. step: creating the downloadable file</h3>" |
self.response+="<p>Create Zip<br>" |
self.response+="<p>Create gtar<br>" |
self.response+="<p>This can take a while....<br>\n" |
self.response+="<p>This can take a while....<br>\n" |
|
|
fh=os.popen2("zip -u %s %s/*"%(tmpZip,tmpPath),1)[1] |
fh=os.popen2("gnutar zcvf %s %s/*"%(tmpZip,tmpPath),1)[1] |
self.response+="<br>" |
self.response+="<br>" |
for c in fh.read(): |
for c in fh.read(): |
self.response+=c |
self.response+=c |
Line 230 class metaData(SimpleItem):
|
Line 252 class metaData(SimpleItem):
|
return ret+"</body></html>" |
return ret+"</body></html>" |
|
|
|
|
|
|
|
|
class ImageDigilib(Folder,Persistent,Implicit): |
class ImageDigilib(Folder,Persistent,Implicit): |
"""Anzeige object fuer digilib""" |
"""Anzeige object fuer digilib""" |
meta_type="ImageDigilib" |
meta_type="ImageDigilib" |
|
security=ClassSecurityInfo() |
leiden_meta_fields=['image_id','date','country','place','people','description','photographer'] |
leiden_meta_fields=['image_id','date','country','place','people','description','photographer'] |
|
|
manage_options = Folder.manage_options+( |
manage_options = Folder.manage_options+( |
Line 324 class ImageDigilib(Folder,Persistent,Imp
|
Line 348 class ImageDigilib(Folder,Persistent,Imp
|
|
|
def download(self,fmt="&mo=rawfile,hires",suffix=None): |
def download(self,fmt="&mo=rawfile,hires",suffix=None): |
"""download""" |
"""download""" |
path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+fmt |
path=self.scalerPath+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): |
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 |
filename=self.REQUEST.SESSION['filenamesIds'][self.filename][0]+"_"+self.filename |
Line 348 class ImageDigilib(Folder,Persistent,Imp
|
Line 372 class ImageDigilib(Folder,Persistent,Imp
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','upDateImageForm.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','upDateImageForm.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
|
security.declareProtected('View management screens','renameImageForm') |
def renameImageForm(self): |
def renameImageForm(self): |
"""form""" |
"""form""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','renameImageForm.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','renameImageForm.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
security.declareProtected('View management screens','renameImage') |
def renameImage(self,newname,RESPONSE=None): |
def renameImage(self,newname,RESPONSE=None): |
"""umbenennen""" |
"""umbenennen""" |
#umbennen des files im folder |
#umbennen des files im folder |
Line 455 class ImageDigilib(Folder,Persistent,Imp
|
Line 482 class ImageDigilib(Folder,Persistent,Imp
|
def thumb(self,url=None): |
def thumb(self,url=None): |
"""show thumb""" |
"""show thumb""" |
thumbname=os.path.splitext(self.filename)[0]+".jpg" |
thumbname=os.path.splitext(self.filename)[0]+".jpg" |
## if not os.path.exists("/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+thumbname): |
|
## image=urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:18080/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&dw=150&mo=lores").read() |
|
## f=open("/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+thumbname,"w") |
|
## f.write(image) |
|
## f.close() |
|
## os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 150 &"% self.ImageViewerPath) |
|
|
|
#DEVEL:take nausikaa for server solution |
path=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+"&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']="<img border=\"0\" src=\"%s\">"% path |
self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path |
if url: |
if url: |
return "<img border=\"0\" src=\"%s\">"% path |
return "<img border=\"0\" src=\"%s\">"% path |
Line 473 class ImageDigilib(Folder,Persistent,Imp
|
Line 492 class ImageDigilib(Folder,Persistent,Imp
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumb.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumb.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
|
def thumbMD(self,url=None): |
|
"""show thumb mit Metadaten erwarten image in ImageCollectionMD |
|
""" |
|
thumbname=os.path.splitext(self.filename)[0]+".jpg" |
|
|
|
path=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+"&dw=100&dh=100&mo=lores" |
|
|
|
self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path |
|
if url: |
|
return "<img border=\"0\" src=\"%s\">"% path |
|
else: |
|
|
|
overview=self.ZopeFind(self.aq_parent,obj_ids=['thumb.html']) |
|
if overview: |
|
return getattr(self,overview[0][0])() |
|
else: |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbMD.zpt')).__of__(self) |
|
return pt() |
|
|
|
|
|
|
def index_html(self): |
def index_html(self): |
"""show image""" |
"""show image""" |
#DEVELOP: take first one for server |
#DEVELOP: take first one for server |
|
#path="http://127.0.0.1:8080/zogilib_images?lv=2&fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0] |
path="http://content.mpiwg-berlin.mpg.de/zogilib_images?lv=2&fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0] |
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) |
return self.REQUEST.RESPONSE.redirect(path) |
|
|
Line 502 def manage_AddImageDigilib(self,id,fileu
|
Line 543 def manage_AddImageDigilib(self,id,fileu
|
|
|
|
|
class ImageCollection(Folder, Persistent, Implicit,ECHO_basis): |
class ImageCollection(Folder, Persistent, Implicit,ECHO_basis): |
|
"""Sammelordner fuer Bilder""" |
"""Sammelordner für Bilder""" |
|
meta_type="ImageCollection" |
meta_type="ImageCollection" |
|
|
|
|
|
security=ClassSecurityInfo() |
|
|
|
#scalerPath="http://127.0.0.1:18080/digitallibrary/servlet/Scaler/?fn=" |
|
scalerPath="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn=" |
|
|
zipThreads={} |
zipThreads={} |
|
zipThreads2={} |
|
|
genericMetaDataType="leiden_meta" |
genericMetaDataType="leiden_meta" |
|
|
leiden_meta_fields=['image_id','date','country','place','people','description','photographer'] |
leiden_meta_fields=['image_id','date','country','place','people','description','photographer'] |
Line 515 class ImageCollection(Folder, Persistent
|
Line 562 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 |
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 getScalerPath(self): |
|
"""get ScalerPath""" |
|
return self.scalerPath |
|
|
|
def getImageViewerPath(self): |
|
"""get ImageViewerPath""" |
|
return self.ImageViewerPath |
|
|
|
def getImageStoragePath(self): |
|
"""get ImageStoragePath""" |
|
return self.ImageStoragePath |
|
|
def refreshTxt(self): |
def refreshTxt(self): |
"""txt fuer refresh""" |
"""txt fuer refresh""" |
Line 535 class ImageCollection(Folder, Persistent
|
Line 593 class ImageCollection(Folder, Persistent
|
|
|
|
|
self.zipThreads[thread.getName()[0:]]=threadStart |
self.zipThreads[thread.getName()[0:]]=threadStart |
|
self.zipThreads2[thread.getName()[0:]]=thread |
self.REQUEST.SESSION['threadName']=thread.getName()[0:] |
self.REQUEST.SESSION['threadName']=thread.getName()[0:] |
wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template']) |
wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template']) |
if wait_template: |
if wait_template: |
return wait_template[0][1]() |
return wait_template[0][1]() |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_Wait.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self) |
return pt() |
return pt() |
#xmltrans.run() |
#xmltrans.run() |
else: |
else: |
Line 551 class ImageCollection(Folder, Persistent
|
Line 610 class ImageCollection(Folder, Persistent
|
if wait_template: |
if wait_template: |
return wait_template[0][1]() |
return wait_template[0][1]() |
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_Wait.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self) |
return pt() |
return pt() |
else: |
else: |
if self.zipThreads[threadName].isDone(): |
if self.zipThreads[threadName].isDone(): |
self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult() |
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) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_result.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
else: |
else: |
self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult() |
self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult() |
self.REQUEST.SESSION['threadName']=threadName |
self.REQUEST.SESSION['threadName']=threadName |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_Wait_result.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait_result.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
|
|
|
|
|
|
|
def checkThreads(self): |
|
"""teste running threads""" |
|
ret="""<html> |
|
<head> |
|
<meta http-equiv="REFRESH" content="5;url=%s/checkThreads" |
|
<body><h2>Threads of %s</h2>"""%(self.absolute_url(),self.getId()) |
|
|
|
for threadName in self.zipThreads.keys(): |
|
if self.zipThreads2[threadName].isAlive(): |
|
ret+="<p>%s --> alive</p>"%threadName |
|
else: |
|
ret+="<p>%s --> dead</p>"%threadName |
|
return ret+"</body></html>" |
|
|
def downloadSet(self,fn): |
def downloadSet(self,fn): |
"""download prepared set""" |
"""download prepared set""" |
filename="/tmp/archivesImageServer/"+fn |
filename=os.path.join(tdir,fn) |
|
|
|
|
self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"image.zip") |
self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"image.tgz") |
self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") |
self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") |
len=os.stat(filename)[6] |
len=os.stat(filename)[6] |
self.REQUEST.RESPONSE.setHeader("Content-Length",len) |
self.REQUEST.RESPONSE.setHeader("Content-Length",len) |
Line 858 class ImageCollection(Folder, Persistent
|
Line 934 class ImageCollection(Folder, Persistent
|
|
|
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
def importStructure(self,path): |
## def importStructure(self,path): |
"""import""" |
## """import""" |
splitted=os.path.split(path) |
## splitted=os.path.split(path) |
if os.path.isDir(path) and (len(splitted[1])>0) and (splitted[1][0]=="."): |
## if os.path.isDir(path) and (len(splitted[1])>0) and (splitted[1][0]=="."): |
manage_AddImageCollection(self,splitted[1],splitted[1],path,self.ImageViewerPath,self.defaultMetaString,RESPONSE=None) |
## manage_AddImageCollection(self,splitted[1],splitted[1],path,self.ImageViewerPath,self.defaultMetaString,RESPONSE=None) |
|
|
obj=getattr(self,splitted[1]) |
## obj=getattr(self,splitted[1]) |
obj.ImportFiles() |
## obj.ImportFiles() |
|
|
def ImportStructure(self,RESPONSE=None): |
def ImportStructure(self,RESPONSE=None): |
"""Import the existing files of a folder""" |
"""Import the existing files of a folder""" |
Line 1236 class ImageCollection(Folder, Persistent
|
Line 1312 class ImageCollection(Folder, Persistent
|
return (cols,rows) |
return (cols,rows) |
|
|
|
|
def show_thumbs_rows(self,numberOfColumns,numberOfRows=None,startId=None): |
def show_thumbs_rows(self,numberOfColumns,numberOfRows=None,startId=None,showall="No"): |
"""Ausgabe anzahl""" |
"""Ausgabe anzahl""" |
|
|
idsAll=self.show_thumbs() |
idsAll=self.show_thumbs() |
if len(idsAll)==0: #keine Einträge |
if len(idsAll)==0: #keine Einträge |
return 0 |
return 0 |
if self.REQUEST.SESSION.has_key("filename"): |
if self.REQUEST.SESSION.has_key("filename") and not (showall=="yes"): |
filename=self.REQUEST.SESSION["filename"] |
filename=self.REQUEST.SESSION["filename"] |
filename=self.getImageByName(filename,onlyName="yes") |
filename=self.getImageByName(filename,onlyName="yes") |
|
|
Line 1355 class ImageCollection(Folder, Persistent
|
Line 1431 class ImageCollection(Folder, Persistent
|
return filename |
return filename |
else: |
else: |
return fn |
return fn |
def index_html(self): |
|
|
|
|
security.declareProtected('View','index_html') |
|
def index_html(self,fn=None): |
"""main template collection""" |
"""main template collection""" |
|
|
|
if fn: |
|
ret=[] |
|
|
|
if type(fn) is ListType: |
|
"""experimentell mehr als ein filename""" |
|
for filename in fn: |
|
if not (filename == ""): |
|
ret.append((filename,'',1)) |
|
else: |
|
ret.append((fn,'',1)) |
|
|
|
self.REQUEST.SESSION['filenames']=ret |
|
#self.REQUEST.SESSION['filenamesIds']=fnIds |
|
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self) |
|
return pt() |
|
|
if self.REQUEST.has_key('filename'): |
if self.REQUEST.has_key('filename'): |
filen=self.REQUEST['filename'] |
filen=self.REQUEST['filename'] |
else: |
else: |
Line 1371 class ImageCollection(Folder, Persistent
|
Line 1468 class ImageCollection(Folder, Persistent
|
self.REQUEST.SESSION['showall']=self.REQUEST.SESSION.get('showall','no') |
self.REQUEST.SESSION['showall']=self.REQUEST.SESSION.get('showall','no') |
|
|
|
|
|
overview=self.ZopeFind(self,obj_ids=['overview.html']) |
|
if overview: |
|
return overview[0][1]() |
|
else: |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
Line 1388 def manage_AddImageCollection(self,id,ti
|
Line 1489 def manage_AddImageCollection(self,id,ti
|
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
|
class ImageCollectionMD(ImageCollection,ZSQLExtendFolder): |
|
"""Imageviewer and Metadata""" |
|
meta_type="ImageCollection MD" |
|
#scalerPath="http://127.0.0.1:18080/digitallibrary/servlet/Scaler/?fn=" |
|
scalerPath="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn=" |
|
manage_options=ImageCollection.manage_options+( |
|
{'label':'ZSQLExtend','action':'changeZSQLExtendForm'}, |
|
) |
|
|
|
try: |
|
changeZSQLExtendForm=ZSQLExtendFolder.changeZSQLExtendForm |
|
except: |
|
pass |
|
|
|
def setGenericSearchStringForm(self): |
|
"""form setze generischen search string fuer MD""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','setGenericSearchStringForm.zpt')).__of__(self) |
|
return pt() |
|
|
|
def setGenericSearchString(self,searchString): |
|
"""setze generischen search string""" |
|
self.searchString=searchString |
|
|
|
def thumblistMD(self): |
|
"""main template collection""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbListMD.zpt')).__of__(self) |
|
return pt() |
|
|
|
|
|
def manage_AddImageCollectionMDForm(self): |
|
"""Nothing yet""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddImageCollectionFormMD.zpt')).__of__(self) |
|
return pt() |
|
|
|
def manage_AddImageCollectionMD(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString,RESPONSE=None): |
|
"""Add ImageCollection""" |
|
newObj=ImageCollectionMD(id,title,ImageStoragePath,ImageViewerPath,defaultMetaString) |
|
self._setObject(id,newObj) |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
|
|
class ImageCollectionIFrame(ImageCollection): |
class ImageCollectionIFrame(ImageCollection): |
"""Class fuer Collection set als IFrame""" |
"""Class fuer Collection set als IFrame""" |
|
|
Line 1444 def manage_AddImageCollectionIFrame(self
|
Line 1591 def manage_AddImageCollectionIFrame(self
|
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
|
|
class ImageZogiLib(ImageDigilib): |
|
"""Anzeige Object fuer Bilder ausserhalb von collections |
|
ImageViewerPath und ImageStoragePath und wenn vorhanden Pfad zur Collection |
|
werden zusaetzlich abgespeichert |
|
""" |
|
|
|
meta_type="ImageZogiLib" |
|
|
|
manage_options=ImageDigilib.manage_options+( |
|
{'label':'Main Config','action':'changeImageZogiLibForm'}, |
|
) |
|
|
|
def __init__(self,id,fn,ImageViewerPath,ImageStoragePath,scalerPath,ImageCollectionPath=None,REQUEST=None): |
|
ImageDigilib.__init__(self,id,fn) |
|
self.ImageViewerPath=ImageViewerPath |
|
self.ImageStoragePath=ImageStoragePath |
|
self.ImageCollectionPath=ImageCollectionPath |
|
self.scalerPath=scalerPath |
|
|
|
def changeImageZogiLibForm(self): |
|
"""change zogilib Form""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeImageZogiLib.zpt')).__of__(self) |
|
return pt() |
|
|
|
|
|
def changeImageZogilib(fn,ImageViewerPath,ImageStoragePath,scalerPath,ImageCollectionPath,REQUEST=None): |
|
"""Change it""" |
|
self.ImageViewerPath=ImageViewerPath |
|
self.ImageStoragePath=ImageStoragePath |
|
self.ImageCollectionPath=ImageColectionPath |
|
self.scalerPath=scalerPath |
|
|
|
def manage_AddImageZogiLib(self,id=None,ImageViewerPath=None,ImageStoragePath=None,fileUpload=None,ImageCollectionPath=None,scalerPath=None,libPath=None,caption=None,RESPONSE=None): |
|
"""hinzufuegen eineis zogilibImage""" |
|
|
|
if libPath: |
|
splitted=libPath.split("?") |
|
urlSplit=splitted[0].split("/") |
|
params=cgi.parse_qs(splitted[1]) |
|
#is LibPath a digilib path? |
|
if urlSplit[-1]=="Scaler": |
|
if type(params['fn']) is ListType: |
|
fnParam=params['fn'][0] |
|
else: |
|
fnParam=params['fn'] |
|
fileNameSplit=os.path.split(fnParam) |
|
ImageViewerPath=fileNameSplit[0] |
|
id=fileNameSplit[1] |
|
scalerPath=splitted[0]+"?fn=" |
|
else: #assume if not the path is a path to an ImageCollection |
|
if type(params['filename']) is ListType: |
|
id=params['filename'][0] |
|
else: |
|
id=params['filename'] |
|
|
|
server=ServerProxy(splitted[0]) |
|
ImageCollectionPath=libPath |
|
ImageViewerPath=server.getImageViewerPath() |
|
ImageStoragePath=server.getImageStoragePath() |
|
scalerPath=server.getScalerPath() |
|
|
|
|
|
|
|
if fileUpload: |
|
fn=splitPath(fileUpload.filename) |
|
else: |
|
fn=id |
|
|
|
newObj=ImageZogiLib(id,fn,ImageViewerPath,ImageStoragePath,scalerPath,ImageCollectionPath) |
|
|
|
self._setObject(id,newObj) |
|
getattr(self,id).caption=caption[0:] |
|
if fileUpload: |
|
getattr(self,id).uploadImage(fileupload,self.ImageStoragePath) |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
def manage_AddImageZogiLibForm(self): |
|
"""to be done""" |
|
|