Diff for /ImageArchive/ImageArchive.py between versions 1.89 and 1.90

version 1.89, 2006/05/22 13:54:37 version 1.90, 2006/05/22 15:29:33
Line 286  class ImageDigilib(Folder,Persistent,Imp Line 286  class ImageDigilib(Folder,Persistent,Imp
                   
         )          )
   
   
           
     def getAccessRight(self):      def getAccessRight(self):
         """get the accessright, return is string "extern" or "intern" """          """get the accessright, return is string "extern" or "intern" """
         return self.getRights(self.filename.split('.')[0])          return self.getRights(self.filename.split('.')[0])
Line 388  class ImageDigilib(Folder,Persistent,Imp Line 390  class ImageDigilib(Folder,Persistent,Imp
             os.chmod(filename,0664)              os.chmod(filename,0664)
         except:          except:
             """hack"""              """hack"""
         #scale thumb          #< thumb
                   
         self.scaleThumbs()          self.scaleThumbs()
   
Line 486  class ImageDigilib(Folder,Persistent,Imp Line 488  class ImageDigilib(Folder,Persistent,Imp
   
             self.scaleWorkingVersions()              self.scaleWorkingVersions()
   
               self.scaleToJpg()
             if RESPONSE:              if RESPONSE:
                     RESPONSE.redirect(self.aq_parent.absolute_url()+"?filename="+self.filename)                      RESPONSE.redirect(self.aq_parent.absolute_url()+"?filename="+self.filename)
                   
       def scaleToJpg(self,RESPONSE=None):
           """create a  jpg"""
           
           #create backup of the original file
           
           imagePath=os.path.join(self.ImageStoragePath,self.filename)
           path=os.path.join(self.ImageStoragePath,"."+self.getId()+".dir")
                   
           if not os.path.exists(path):
               os.mkdir(path,0775)
               os.chmod(path,0775)
               
           newName=os.path.join(path,self.getId())
   
           if os.path.exists(newName):
               zLOG.LOG("ImageArchive:scaleToJpg", zLOG.INFO, "%s already exists"%newName)
           else:
               try:
                   os.rename(imagePath,newName)
               except:
                   zLOG.LOG("ImageArchive:scaleToJpg", zLOG.ERROR, "%s "%newName)
                   return False
               
       
               
           
           
           self.scale(dest=self.srcBasis,filename=newName,scaleBy=1,RESPONSE=RESPONSE)
           return True
   
     def updateImage(self,_fileupload,_rename=None,RESPONSE=None):      def updateImage(self,_fileupload,_rename=None,RESPONSE=None):
         """lade neues Version des Bildes"""          """lade neues Version des Bildes"""
Line 537  class ImageDigilib(Folder,Persistent,Imp Line 568  class ImageDigilib(Folder,Persistent,Imp
             #scale standard              #scale standard
           
             self.scaleWorkingVersions()              self.scaleWorkingVersions()
                   self.scaleToJpg()
             if _rename:              if _rename:
                 self.renameImage(_fileupload.filename)                  self.renameImage(_fileupload.filename)
                   
Line 657  class ImageCollection(OrderedFolder, Per Line 688  class ImageCollection(OrderedFolder, Per
   
     leiden_meta_fields=['image_id','date','country','place','people','description','photographer']      leiden_meta_fields=['image_id','date','country','place','people','description','photographer']
   
       scaledBasis="/mpiwg/temp/online/scaled"
           
     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
   
Line 665  class ImageCollection(OrderedFolder, Per Line 697  class ImageCollection(OrderedFolder, Per
     imgcoll_thumb = PageTemplateFile('zpt/thumb', globals())      imgcoll_thumb = PageTemplateFile('zpt/thumb', globals())
     imgcoll_thumbMD = PageTemplateFile('zpt/thumbMD', globals())          imgcoll_thumbMD = PageTemplateFile('zpt/thumbMD', globals())    
   
       destBasis="/docuserver/scaled/"
       srcBasis="/docuserver/images"
       def scale(self,dest=None,dir=None,filename=None,scaleTo=None,scaleBy=None,RESPONSE=None):
           """scaler"""
           #scaleomatStr="ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ %s"
           scaleomatStr="/docuserver/libs/scaleomat/scaleomat.pl"
   
           destBasis=self.destBasis
           srcBasis=self.srcBasis
       
           srcStr=" -src=%s"%srcBasis
           scaleStr=scaleomatStr+srcStr
           if dir:
               dirTmp=dir.replace(srcBasis,'')
               dirStr=" -dir=%s"%dirTmp
               scaleStr=scaleStr+dirStr
           elif filename:
               fileTmp=filename.replace(srcBasis,'')
               fileStr=" -dir=%s"%fileTmp
               scaleStr=scaleStr+fileStr
           else:
               zLOG.LOG("ImageCollection:scale",zLOG.ERROR,"no directory or filename given")
               return False
           
           if dest is not None:
               destStr=" -dest=%s"%os.path.join(destBasis,dest)
               scaleStr=scaleStr+destStr
           else:
               zLOG.LOG("ImageCollection:scale",zLOG.ERROR,"no destionation given")
               return False
           
           if scaleTo:
               scaleToStr=" -scaleto=%s"%scaleTo
               scaleStr=scaleStr+scaleToStr
           elif scaleBy:
               scaleByStr=" -scaleby=%s"%scaleBy
               scaleStr=scaleStr+scaleByStr
           else:
               zLOG.LOG("ImageCollection:scale",zLOG.ERROR,"no destionation given")
               return False
        
           print scaleStr
           ret=scaleStr
           #ret=os.popen(scaleStr)
    
           if RESPONSE:
                RESPONSE.write(ret)
           return True
    
     def getImageObject(self,name):      def getImageObject(self,name):
         """gibt objeckt name zurueck"""          """gibt objeckt name zurueck"""
         if hasattr(self,name):          if hasattr(self,name):
Line 784  class ImageCollection(OrderedFolder, Per Line 865  class ImageCollection(OrderedFolder, Per
             self.REQUEST.RESPONSE.close()              self.REQUEST.RESPONSE.close()
   
                                           
       def scaleToJpgs(self,RESPONSE=None):
           """scale all tifs to jps"""
           print self._objects
           for x in self._objects:
                   
                   if (not hasattr(getattr(self,x['id']),'scaleToJpg')) or (not getattr(self,x['id']).scaleToJpg()):
                       if RESPONSE:
                           RESPONSE.write('error:%s'%x)
                   
                   
                                           
     def scaleThumbs(self,RESPONSE=None):      def scaleThumbs(self,RESPONSE=None):
         """scale thumbs"""          """scale thumbs"""
                   
         #scale thumbs          #scale thumbs
         ret=os.popen("/docuserver/libs/scaleomat/scaleomat.pl -src=/docuserver/images/ -dir=%s -dest=/docuserver/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)          dest=os.path.join(self.scaledBasis,'thumb')
           self.scale(dir=self.ImageStoragePath,dest=dest,scaleTo=100,RESPONSE=RESPONSE)
           #ret=os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)
         if RESPONSE:          if RESPONSE:
                 RESPONSE.write(ret.read())                  RESPONSE.write(ret.read())
                 RESPONSE.write("\n")                  RESPONSE.write("\n")
Line 801  class ImageCollection(OrderedFolder, Per Line 894  class ImageCollection(OrderedFolder, Per
                   
         #scale standard          #scale standard
   
         ret=os.popen("/docuserver/libs/scaleomat/scaleomat.pl -src=/docuserver/images -dir=%s -dest=/docuserver/scaled/small -scaleto=1000 &"% self.ImageViewerPath)          dest=os.path.join(self.scaledBasis,'small')
           self.scale(dir=self.ImageStoragePath,dest=dest,scaleTo=1000,RESPONSE=RESPONSE)
   
         ret=os.popen("/docuserver/libs/scaleomat/scaleomat.pl -src=/docuserver/images -dir=%s -dest=/docuserver/scaled/medium -scaleto=2000 &"% self.ImageViewerPath)          dest=os.path.join(self.scaledBasis,'medium')
           self.scale(dir=self.ImageStoragePath,dest=dest,scaleTo=2000,RESPONSE=RESPONSE)
   
           #ret=os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/small -scaleto=2000 &"% self.ImageViewerPath)
         if RESPONSE:          if RESPONSE:
                 RESPONSE.write(ret.read())                  RESPONSE.write(ret.read())
                 RESPONSE.write("\n")                  RESPONSE.write("\n")
         return "rescaling started"          return "rescaling started"
   
   
       
     def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString,serverPath=genericServerPath):      def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString,serverPath=genericServerPath):
         self.id=id          self.id=id
         self.title=title          self.title=title
Line 1798  class ImageCollectionMD(ImageCollection, Line 1893  class ImageCollectionMD(ImageCollection,
   
         self.scaleWorkingVersions()          self.scaleWorkingVersions()
                   
           self.scaleToJpgs()
           
         if RESPONSE:          if RESPONSE:
                 RESPONSE.redirect('manage_main')                  RESPONSE.redirect('manage_main')
       
Line 1830  class ImageCollectionMD(ImageCollection, Line 1927  class ImageCollectionMD(ImageCollection,
                   
         self.ZSQLAdd(args=args)          self.ZSQLAdd(args=args)
                   
           self.scaleThumbs()
           self.scaleWorkingVersions()
           
           getattr(self,fn).scaleToJpg()
         if RESPONSE:          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

Removed from v.1.89  
changed lines
  Added in v.1.90


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