version 1.64, 2005/10/07 10:51:38
|
version 1.68, 2005/10/25 18:57:59
|
Line 1
|
Line 1
|
|
|
|
genericServerPath="http://content.mpiwg-berlin.mpg.de/zogilib_images" |
|
#genericServerPath="http://127.0.0.1:8080/zogilib_images" |
|
|
|
|
from OFS.Folder import Folder |
from OFS.Folder import Folder |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
from Globals import Persistent,package_home |
from Globals import Persistent,package_home |
Line 19 from threading import Thread
|
Line 24 from threading import Thread
|
import Queue |
import Queue |
import cgi |
import cgi |
|
|
from AccessControl import ClassSecurityInfo |
from AccessControl import ClassSecurityInfo, getSecurityManager |
|
|
try: |
try: |
from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder |
from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder |
Line 124 class generateSet:
|
Line 129 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=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000" |
requestString=self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000" |
|
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn="+requestString |
|
|
else: |
else: |
path=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&mo=rawfile,hires" |
requestString=self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&mo=rawfile,hires" |
|
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn="+requestString |
|
|
|
|
image=urllib.urlopen(path).read() |
image=urllib.urlopen(path).read() |
|
|
|
|
Line 169 class generateSet:
|
Line 179 class generateSet:
|
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=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(ids[nr+i])[0]+"&mo=rawfile,hires" |
|
|
requestString=self.ImageViewerPath+"/"+os.path.splitext(ids[nr+i])[0]+"&mo=rawfile,hires" |
|
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn="+requestString |
|
|
image=urllib.urlopen(path).read() |
image=urllib.urlopen(path).read() |
|
|
Line 266 class ImageDigilib(Folder,Persistent,Imp
|
Line 278 class ImageDigilib(Folder,Persistent,Imp
|
|
|
) |
) |
|
|
|
def getAccessRight(self): |
|
"""get the accessright, return is string "extern" or "intern" """ |
|
return self.getRights(self.filename.split('.')[0]) |
|
|
|
|
|
def isAccessible(self): |
|
"""gives true if obejct is accessible taking the rights of the user into account""" |
|
|
|
#TODO: implement rights, currently true if external and false if internal, and true if user has role authenticated |
|
|
|
username=self.REQUEST['AUTHENTICATED_USER'] |
|
#print username |
|
#print self.acl_users.getUserNames() |
|
user=getSecurityManager().getUser() |
|
|
|
roles=user.getRoles() |
|
if 'Authenticated' in roles: |
|
return True |
|
|
|
if self.getAccessRight()=="extern": |
|
return True |
|
else: |
|
return False |
|
|
def addMetaObject(self,id,RESPONSE=None): |
def addMetaObject(self,id,RESPONSE=None): |
"""Add an MetaObject""" |
"""Add an MetaObject""" |
objectType=getattr(self.Control_Panel.Products.ImageMetaData,self.genericMetaDataType) |
objectType=getattr(self.Control_Panel.Products.ImageMetaData,self.genericMetaDataType) |
Line 295 class ImageDigilib(Folder,Persistent,Imp
|
Line 331 class ImageDigilib(Folder,Persistent,Imp
|
self.filename=filename |
self.filename=filename |
self.meta=meta |
self.meta=meta |
|
|
|
|
def getMeta(self): |
def getMeta(self): |
"""ausgabe der metadaten""" |
"""ausgabe der metadaten""" |
return self.meta |
return self.meta |
Line 348 class ImageDigilib(Folder,Persistent,Imp
|
Line 385 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=self.scalerPath+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+fmt |
|
|
requestString=self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+fmt |
|
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn="+requestString |
|
|
|
|
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 482 class ImageDigilib(Folder,Persistent,Imp
|
Line 522 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" |
|
requestString=self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+"&dw=100&dh=100&mo=lores" |
|
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn="+requestString |
|
|
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 |
self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path |
if url: |
if url: |
Line 498 class ImageDigilib(Folder,Persistent,Imp
|
Line 539 class ImageDigilib(Folder,Persistent,Imp
|
""" |
""" |
thumbname=os.path.splitext(self.filename)[0]+".jpg" |
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" |
requestString=self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+"&dw=100&dh=100&mo=lores" |
|
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn="+requestString |
|
|
|
|
|
|
self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path |
self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path |
if url: |
if url: |
Line 513 class ImageDigilib(Folder,Persistent,Imp
|
Line 557 class ImageDigilib(Folder,Persistent,Imp
|
return pt() |
return pt() |
|
|
|
|
|
def image(self,dw=None,dh=None): |
|
"""show image only with scaler""" |
|
str=[] |
|
if (not dw) and (not dh): |
|
str.append("mo=file") |
|
if dw: |
|
str.append("dw=%s"%dw) |
|
|
|
if dh: |
|
str.append("dw=%s"%dh) |
|
|
|
str.append("lv=2&fn=%s"%self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]) |
|
|
|
|
|
requestString="&".join(str) |
|
|
|
self.REQUEST.RESPONSE.redirect(getattr(self,'serverPath',genericServerPath)+"/scaledImage?"+requestString) |
|
|
def index_html(self): |
def index_html(self): |
"""show image""" |
"""show image with zogilib""" |
#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://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=getattr(self,'serverPath',genericServerPath)+"?lv=2&fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0] |
return self.REQUEST.RESPONSE.redirect(path) |
return self.REQUEST.RESPONSE.redirect(path) |
|
|
|
|
Line 550 class ImageCollection(Folder, Persistent
|
Line 611 class ImageCollection(Folder, Persistent
|
security=ClassSecurityInfo() |
security=ClassSecurityInfo() |
|
|
#scalerPath="http://127.0.0.1:18080/digitallibrary/servlet/Scaler/?fn=" |
#scalerPath="http://127.0.0.1:18080/digitallibrary/servlet/Scaler/?fn=" |
scalerPath="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn=" |
#scalerPath="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn=" |
|
|
zipThreads={} |
zipThreads={} |
zipThreads2={} |
zipThreads2={} |
Line 564 class ImageCollection(Folder, Persistent
|
Line 625 class ImageCollection(Folder, Persistent
|
|
|
def getScalerPath(self): |
def getScalerPath(self): |
"""get ScalerPath""" |
"""get ScalerPath""" |
return self.scalerPath |
path=getattr(self,'serverPath',genericServerPath)+"/scaledImage?fn=" |
|
|
def getImageViewerPath(self): |
def getImageViewerPath(self): |
"""get ImageViewerPath""" |
"""get ImageViewerPath""" |
Line 684 class ImageCollection(Folder, Persistent
|
Line 745 class ImageCollection(Folder, Persistent
|
|
|
|
|
|
|
def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString): |
def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString,serverPath=genericServerPath): |
self.id=id |
self.id=id |
self.title=title |
self.title=title |
self.ImageStoragePath=ImageStoragePath |
self.ImageStoragePath=ImageStoragePath |
self.ImageViewerPath=ImageViewerPath |
self.ImageViewerPath=ImageViewerPath |
self.defaultMetaString=defaultMetaString |
self.defaultMetaString=defaultMetaString |
|
self.serverPath=serverPath |
|
|
optTMP= Folder.manage_options |
optTMP= Folder.manage_options |
|
|
Line 822 class ImageCollection(Folder, Persistent
|
Line 884 class ImageCollection(Folder, Persistent
|
|
|
|
|
def xmlinput(self,url): |
def xmlinput(self,url): |
"""Anzeige von ausgewaehlten thumbs""" |
"""Anzeige <n ausgewaehlten thumbs""" |
#return url |
#return url |
|
|
url=urllib.unquote(url) |
url=urllib.unquote(url) |
Line 884 class ImageCollection(Folder, Persistent
|
Line 946 class ImageCollection(Folder, Persistent
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addImage.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addImage.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def addImage2(self,fileupload,meta,use_default=None,RESPONSE=None): |
def addImage2(self,fileupload,fileName=None,meta=None,use_default=None,RESPONSE=None): |
"""Add""" |
"""Add""" |
|
|
#print "FU",fileupload |
#print "FU",fileupload |
Line 896 class ImageCollection(Folder, Persistent
|
Line 958 class ImageCollection(Folder, Persistent
|
meta=None |
meta=None |
else: |
else: |
meta=None |
meta=None |
|
|
|
if fileName: |
|
fn=fileName |
|
else: |
fn=splitPath(fileupload.filename) |
fn=splitPath(fileupload.filename) |
|
|
manage_AddImageDigilib(self,fn,fileupload,meta=meta) |
manage_AddImageDigilib(self,fn,fileupload,meta=meta) |
|
|
|
if RESPONSE: |
return RESPONSE.redirect(self.REQUEST['URL1']+'/'+fn) |
return RESPONSE.redirect(self.REQUEST['URL1']+'/'+fn) |
#return self.REQUEST['URL1']+'/'+fileupload.filename |
#return self.REQUEST['URL1']+'/'+fileupload.filename |
|
|
Line 1495 class ImageCollectionMD(ImageCollection,
|
Line 1563 class ImageCollectionMD(ImageCollection,
|
meta_type="ImageCollection MD" |
meta_type="ImageCollection MD" |
#scalerPath="http://127.0.0.1:18080/digitallibrary/servlet/Scaler/?fn=" |
#scalerPath="http://127.0.0.1:18080/digitallibrary/servlet/Scaler/?fn=" |
scalerPath="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn=" |
scalerPath="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn=" |
|
rightsQueryDefault="SELECT accessibility from vision_main where id_image=(SELECT id from vision_images where filename ~ '%s*' )" |
|
rightsQueryFieldDefault="accessibility" |
|
|
manage_options=ImageCollection.manage_options+( |
manage_options=ImageCollection.manage_options+( |
{'label':'ZSQLExtend','action':'changeZSQLExtendForm'}, |
{'label':'ZSQLExtend','action':'changeZSQLExtendForm'}, |
|
{'label':'Change Rights Query','action':'changeRightsQueryForm'}, |
) |
) |
|
|
try: |
try: |
Line 1504 class ImageCollectionMD(ImageCollection,
|
Line 1576 class ImageCollectionMD(ImageCollection,
|
except: |
except: |
pass |
pass |
|
|
|
def changeRightsQueryForm(self): |
|
"""change Rights Query""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeRightsQueryForm.zpt')).__of__(self) |
|
return pt() |
|
|
|
def changeRightsQuery(self,rightsQuery,rightsQueryField,RESPONSE=None): |
|
"""change Rightsquery""" |
|
|
|
self.rightsQuery=rightsQuery |
|
self.rightsQueryField=rightsQueryField |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
|
def getRightsQuery(self): |
|
"""get Query""" |
|
return getattr(self,'rightsQuery',self.rightsQueryDefault) |
|
|
|
def getRightsQueryField(self): |
|
"""get Query Fiueld""" |
|
return getattr(self,'rightsQueryField',self.rightsQueryFieldDefault) |
|
|
|
|
|
|
def setGenericSearchStringForm(self): |
def setGenericSearchStringForm(self): |
"""form setze generischen search string fuer MD""" |
"""form setze generischen search string fuer MD""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','setGenericSearchStringForm.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','setGenericSearchStringForm.zpt')).__of__(self) |
Line 1518 class ImageCollectionMD(ImageCollection,
|
Line 1616 class ImageCollectionMD(ImageCollection,
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbListMD.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbListMD.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
def getRights(self,id): |
|
"""get the rights from a database""" |
|
#print self.rightsQuery%id |
|
results=self.ZSQLSimpleSearch(self.getRightsQuery()%id) |
|
if results: |
|
result = getattr(results[0],self.getRightsQueryField()) |
|
else: |
|
result = '' |
|
return result |
|
|
|
|
def manage_AddImageCollectionMDForm(self): |
def manage_AddImageCollectionMDForm(self): |
"""Nothing yet""" |
"""Nothing yet""" |
Line 1596 class ImageZogiLib(ImageDigilib):
|
Line 1704 class ImageZogiLib(ImageDigilib):
|
ImageViewerPath und ImageStoragePath und wenn vorhanden Pfad zur Collection |
ImageViewerPath und ImageStoragePath und wenn vorhanden Pfad zur Collection |
werden zusaetzlich abgespeichert |
werden zusaetzlich abgespeichert |
""" |
""" |
|
#TODO: scaler path notwendig? |
meta_type="ImageZogiLib" |
meta_type="ImageZogiLib" |
|
|
manage_options=ImageDigilib.manage_options+( |
manage_options=ImageDigilib.manage_options+( |