Diff for /ImageArchive/ImageArchive.py between versions 1.61 and 1.65

version 1.61, 2005/07/04 11:01:02 version 1.65, 2005/10/11 20:08:10
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
   
 try:  try:
     from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder      from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
 except:  except:
     print "ZSQL Extend Folder nicht importiert"      print "ZSQL Extend Folder nicht importiert"
     print "Metadatendfolder funktioniert nicht!!!"      print "Metadatendfolder funktioniert nicht!!!"
           
   
   
 try:  try:
     from Products.ECHO_content.ECHO_collection import ECHO_basis      from Products.ECHO_content.ECHO_collection import ECHO_basis
 except:  except:
Line 105  class generateSet: Line 114  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":
Line 119  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 132  class generateSet: Line 147  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()
                                                           
Line 163  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 251  class metaData(SimpleItem): Line 269  class metaData(SimpleItem):
 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 289  class ImageDigilib(Folder,Persistent,Imp Line 307  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 342  class ImageDigilib(Folder,Persistent,Imp Line 361  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 366  class ImageDigilib(Folder,Persistent,Imp Line 388  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 473  class ImageDigilib(Folder,Persistent,Imp Line 498  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 489  class ImageDigilib(Folder,Persistent,Imp Line 515  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 504  class ImageDigilib(Folder,Persistent,Imp Line 533  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 534  def manage_AddImageDigilib(self,id,fileu Line 580  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://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 553  class ImageCollection(Folder, Persistent Line 601  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 673  class ImageCollection(Folder, Persistent Line 721  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 811  class ImageCollection(Folder, Persistent Line 860  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 1301  class ImageCollection(Folder, Persistent Line 1350  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 1420  class ImageCollection(Folder, Persistent Line 1469  class ImageCollection(Folder, Persistent
             return filename              return filename
         else:          else:
             return fn              return fn
           
           
       security.declareProtected('View','index_html')
     def index_html(self,fn=None):      def index_html(self,fn=None):
         """main template collection"""          """main template collection"""
           
Line 1485  class ImageCollectionMD(ImageCollection, Line 1537  class ImageCollectionMD(ImageCollection,
         {'label':'ZSQLExtend','action':'changeZSQLExtendForm'},          {'label':'ZSQLExtend','action':'changeZSQLExtendForm'},
        )         )
   
       try:        
     changeZSQLExtendForm=ZSQLExtendFolder.changeZSQLExtendForm      changeZSQLExtendForm=ZSQLExtendFolder.changeZSQLExtendForm
       except:
         pass
           
     def setGenericSearchStringForm(self):      def setGenericSearchStringForm(self):
         """form setze generischen search string fuer MD"""          """form setze generischen search string fuer MD"""
Line 1579  class ImageZogiLib(ImageDigilib): Line 1634  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+(

Removed from v.1.61  
changed lines
  Added in v.1.65


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>