Diff for /ImageArchive/ImageArchive.py between versions 1.21 and 1.30

version 1.21, 2004/03/31 19:14:17 version 1.30, 2004/10/13 14:07:19
Line 9  import os Line 9  import os
 import os.path  import os.path
 import urllib  import urllib
 import xml.dom.minidom  import xml.dom.minidom
   import operator
   
   def splitPath(str):
       str2=str.replace("\\","/")
       return os.path.split(str2)[1]
   
 def getText(nodelist):  def getText(nodelist):
           
Line 38  class ImageDigilib(Folder,Persistent,Imp Line 43  class ImageDigilib(Folder,Persistent,Imp
   
         request=self.REQUEST          request=self.REQUEST
         objectCreate=objectType.createObjectManager(id,request)          objectCreate=objectType.createObjectManager(id,request)
         #for field in self.leiden_meta_fields:  
         #    self.REQUEST[field]=argv[field]  
         self._setObject(id,objectCreate)          self._setObject(id,objectCreate)
                   
         objectCreate.propertysheets.meta.manage_editProperties(request)          objectCreate.propertysheets.meta.manage_editProperties(request)
Line 69  class ImageDigilib(Folder,Persistent,Imp Line 73  class ImageDigilib(Folder,Persistent,Imp
     def uploadImage(self,fileupload,path_name):      def uploadImage(self,fileupload,path_name):
         """upload an Image from an Requast"""          """upload an Image from an Requast"""
         #path_name=self.ImageStoragePath          #path_name=self.ImageStoragePath
         filename=path_name+"/"+fileupload.filename          fn=splitPath(fileupload.filename)
           filename=path_name+"/"+fn
         filedata=fileupload.read()          filedata=fileupload.read()
         f=open(filename,"w")          f=open(filename,"w")
         f.write(filedata)          f.write(filedata)
         f.close()          f.close()
           try:
         os.chmod(filename,0644)          os.chmod(filename,0644)
           except:
               """hack"""
   
         os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 100 &"% self.ImageViewerPath)          os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 100 &"% self.ImageViewerPath)
   
           
Line 110  class ImageDigilib(Folder,Persistent,Imp Line 119  class ImageDigilib(Folder,Persistent,Imp
         """show image"""          """show image"""
         #DEVELOP: take first one for server          #DEVELOP: take first one for server
                   
         path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/digilib.jsp?lv=2&fn="+self.ImageViewerPath+"/"+self.filename          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          #path="http://localhost:8080/mpiwg/online/"+self.ImageViewerPath+"/"+self.filename
         #self.REQUEST.SESSION['string']="<img src=\"%s\">"% path          #self.REQUEST.SESSION['string']="<img src=\"%s\">"% path
Line 126  def manage_AddImageDigilibForm(self): Line 135  def manage_AddImageDigilibForm(self):
 def manage_AddImageDigilib(self,id,fileupload,meta=None,RESPONSE=None):  def manage_AddImageDigilib(self,id,fileupload,meta=None,RESPONSE=None):
     """Add ImageCollection"""      """Add ImageCollection"""
     #fileupload=self.REQUEST['fileupload']      #fileupload=self.REQUEST['fileupload']
     newObj=ImageDigilib(id,fileupload.filename,meta)      fn=splitPath(fileupload.filename)
       newObj=ImageDigilib(id,fn,meta)
           
     self._setObject(id,newObj)      self._setObject(id,newObj)
     getattr(self,id).uploadImage(fileupload,self.ImageStoragePath)      getattr(self,id).uploadImage(fileupload,self.ImageStoragePath)
Line 164  class ImageCollection(Folder, Persistent Line 174  class ImageCollection(Folder, Persistent
         {'label':'Recalculate Metadata','action':'recalculateMeta'},          {'label':'Recalculate Metadata','action':'recalculateMeta'},
         {'label':'Import Metadata','action':'importMetaForm'},          {'label':'Import Metadata','action':'importMetaForm'},
         {'label':'Rescale thumbs','action':'scaleThumbs'},          {'label':'Rescale thumbs','action':'scaleThumbs'},
           {'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):      def importMetaForm(self):
         """import metadata"""          """import metadata"""
Line 317  class ImageCollection(Folder, Persistent Line 340  class ImageCollection(Folder, Persistent
                 meta=None                  meta=None
         else:          else:
             meta=None              meta=None
           fn=splitPath(fileupload.filename)
                                   
         manage_AddImageDigilib(self,fileupload.filename,fileupload,meta=meta)          manage_AddImageDigilib(self,fn,fileupload,meta=meta)
         return RESPONSE.redirect(self.REQUEST['URL1']+'/'+fileupload.filename)          return RESPONSE.redirect(self.REQUEST['URL1']+'/'+fn)
         #return  self.REQUEST['URL1']+'/'+fileupload.filename          #return  self.REQUEST['URL1']+'/'+fileupload.filename
   
     def ImportFiles2(self,RESPONSE=None):      def ImportFiles2(self,RESPONSE=None):
Line 491  class ImageCollection(Folder, Persistent Line 515  class ImageCollection(Folder, Persistent
             else:              else:
                 return ""                  return ""
                           
       def showRuler(self,selected=None):
           """show ruler"""
           showall =self.REQUEST.SESSION.get('showall','no')
           ids=self.show_thumbs()
           if len(ids)==0:
               return "<b>No entries</b>"
           
           if showall=='no':
               ids=self.show_thumbs()
               colRows=self.getColTimesRow()
               num=int(len(ids)/(colRows[0]*colRows[1]))
               if not (operator.mod(len(ids),colRows[0]*colRows[1])==0):
                   num+=1
               a=colRows[0]*colRows[1]
               #print num,num+1
               if num>1:
   
                   ret="<b>Show thumbnail group no:</b></br>"
                   for i in range(num):
                       if (operator.mod(i,10)==0) and i>0:
                           ret +="<br/>" #alle 10 linebreak einfuegen
                       k=i*a
                       if selected:                
                           href=self.REQUEST['URL1']+"/selection?filename="+ids[k]
                       else:
                           href=self.REQUEST['URL1']+"?filename="+ids[int(k)]
   
                       ret+="""<a href="%s" target="_top">%i</a>&nbsp;&nbsp;"""%(href,i)
   
               else:
                   ret=""
               ret+="""<a href="%s?showall=yes" target="_top">show all</a> """%self.REQUEST['URL1']
           else:
               ret="""<a href="%s?showall=no" target="_top">show groups</a> """%self.REQUEST['URL1']
   
           return ret
       
     def show_thumbs_selected_rows(self,numberOfColumns):      def show_thumbs_selected_rows(self,numberOfColumns):
         """Ausgabe anzahl"""          """Ausgabe anzahl"""
         ids=self.show_selected_thumbs()          ids=self.show_selected_thumbs()
Line 524  class ImageCollection(Folder, Persistent Line 585  class ImageCollection(Folder, Persistent
   
         RESPONSE.redirect(self.REQUEST['URL1']+"/setDone")          RESPONSE.redirect(self.REQUEST['URL1']+"/setDone")
                   
     def getColTimesRow(self):      def getColTimesRow(self,showall='No'):
         """coltimesrow"""          """coltimesrow"""
                   
         REQUEST=self.REQUEST          REQUEST=self.REQUEST
Line 534  class ImageCollection(Folder, Persistent Line 595  class ImageCollection(Folder, Persistent
             try:              try:
                 rows=int(REQUEST.cookies["ImageViewerRows"])                  rows=int(REQUEST.cookies["ImageViewerRows"])
             except:              except:
                 rows=None                  rows=6
         else:          else:
             rows=None              rows=6
                           
         if REQUEST.cookies.has_key("ImageViewerCols"):          if REQUEST.cookies.has_key("ImageViewerCols"):
             #print "COLS",REQUEST.cookies["ImageViewerCols"]              #print "COLS",REQUEST.cookies["ImageViewerCols"]
             cols=int(REQUEST.cookies["ImageViewerCols"])              cols=int(REQUEST.cookies["ImageViewerCols"])
         else:          else:
             cols=3              cols=2
   
         idsnumber=len(self.show_thumbs())          idsnumber=len(self.show_thumbs())
         if rows:          if rows:
             if cols*rows >idsnumber:              if cols*rows >idsnumber:
                 rows=int(idsnumber/cols)+1                  rows=int(idsnumber/cols)+1
   
           #print cols,rows
           if showall=='yes':
               rows=int(idsnumber/cols)+1
               
         return (cols,rows)          return (cols,rows)
                                   
                   
Line 555  class ImageCollection(Folder, Persistent Line 621  class ImageCollection(Folder, Persistent
         """Ausgabe anzahl"""          """Ausgabe anzahl"""
   
         idsAll=self.show_thumbs()          idsAll=self.show_thumbs()
                   if len(idsAll)==0: #keine Einträge
               return 0
         if self.REQUEST.SESSION.has_key("filename"):          if self.REQUEST.SESSION.has_key("filename"):
             filename=self.REQUEST.SESSION["filename"]              filename=self.REQUEST.SESSION["filename"]
               
                   
             try:              try:
                 startId=filename                  startId=filename
                   if startId=="":
                       startId=idsAll[0][0:]    
             except:              except:
                 startId=idsAll[0]                  startId=idsAll[0][0:]    
         else:          else:
             startId=idsAll[0]              startId=idsAll[0][0:]
               
                           
   
         print "NOR:",numberOfRows  
   
         if numberOfRows:          if numberOfRows:
              
               startPic=idsAll.index(startId)
             try:              try:
                   
                 startPic=idsAll.index(startId)                  startPic=idsAll.index(startId)
                 endPic=startPic+numberOfColumns*numberOfRows                  endPic=startPic+numberOfColumns*numberOfRows
                 ids=idsAll[startPic:endPic]                  ids=idsAll[startPic:endPic]
             except:              except:
                 ids=idsAll                  ids=idsAll
         else:          else:
   
             ids=idsAll              ids=idsAll
   
                           
Line 613  class ImageCollection(Folder, Persistent Line 688  class ImageCollection(Folder, Persistent
         pt=PageTemplateFile('Products/ImageArchive/zpt/thumb2.zpt').__of__(self)          pt=PageTemplateFile('Products/ImageArchive/zpt/thumb2.zpt').__of__(self)
         return pt()          return pt()
   
       def thumblistNewWindow(self):
           """Thumbs mit clik neues Fenster oeffnen"""
           pt=PageTemplateFile('Products/ImageArchive/zpt/thumbNewWindow.zpt').__of__(self)
           return pt()
           
   
     def navig_selected_html(self):      def navig_selected_html(self):
         """navigation"""          """navigation"""
         #self.REQUEST.SESSION['URL']=self.REQUEST['URL0']          #self.REQUEST.SESSION['URL']=self.REQUEST['URL0']
Line 642  class ImageCollection(Folder, Persistent Line 723  class ImageCollection(Folder, Persistent
             filen=self.REQUEST['filename']              filen=self.REQUEST['filename']
         else:          else:
             filen=""              filen=""
   
         self.REQUEST.SESSION['filename']=filen          self.REQUEST.SESSION['filename']=filen
           
           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('Products/ImageArchive/zpt/overview.zpt').__of__(self)
         return pt()          return pt()
           
Line 666  class ImageCollectionIFrame(ImageCollect Line 756  class ImageCollectionIFrame(ImageCollect
     meta_type="ImageCollectionIFrame"      meta_type="ImageCollectionIFrame"
     label=ImageCollection.title      label=ImageCollection.title
   
       def getImageTag(self):
           """ hack : method needed by echo_content"""
           return ""
       
     def rotate(self,angle,url,RESPONSE):      def rotate(self,angle,url,RESPONSE):
     """rotate"""      """rotate"""
           

Removed from v.1.21  
changed lines
  Added in v.1.30


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