Diff for /ImageArchive/ImageArchive.py between versions 1.71 and 1.76

version 1.71, 2005/10/26 14:57:59 version 1.76, 2006/03/29 18:48:00
Line 22  import time Line 22  import time
 from threading import Thread  from threading import Thread
 import Queue  import Queue
 import cgi  import cgi
   import zLOG
   
 from AccessControl import ClassSecurityInfo, getSecurityManager  from AccessControl import ClassSecurityInfo, getSecurityManager
   
Line 284  class ImageDigilib(Folder,Persistent,Imp Line 285  class ImageDigilib(Folder,Persistent,Imp
         """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])
                     
       security.declarePublic('isAccessible')
     
     def isAccessible(self):      def isAccessible(self):
         """gives true if obejct is accessible taking the rights of the user into account"""          """gives true if obejct is accessible taking the rights of the user into account"""
Line 296  class ImageDigilib(Folder,Persistent,Imp Line 298  class ImageDigilib(Folder,Persistent,Imp
         user=getSecurityManager().getUser()          user=getSecurityManager().getUser()
   
         roles=user.getRoles()          roles=user.getRoles()
   
       if self.getRightsQuery()=="":
               #query empty then always true
           return True
   
         if 'Authenticated' in roles:          if 'Authenticated' in roles:
             return True              return True
                   
Line 363  class ImageDigilib(Folder,Persistent,Imp Line 370  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
         fn=splitPath(fileupload.filename)          fn = self.filename or splitPath(fileupload.filename)
         filename=path_name+"/"+fn          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()
           self.filename = fn
         try:          try:
             os.chmod(filename,0664)              os.chmod(filename,0664)
         except:          except:
Line 479  class ImageDigilib(Folder,Persistent,Imp Line 487  class ImageDigilib(Folder,Persistent,Imp
     def updateImage(self,file,rename=None,RESPONSE=None):      def updateImage(self,file,rename=None,RESPONSE=None):
             """lade neues Version des Bildes"""              """lade neues Version des Bildes"""
             #teste ob Dokumenten ordner schon vorhanden              #teste ob Dokumenten ordner schon vorhanden
             imagePath=os.path.join(self.ImageStoragePath,self.getId())              #imagePath=os.path.join(self.ImageStoragePath,self.getId())
               imagePath=os.path.join(self.ImageStoragePath,self.filename)
             path=os.path.join(self.ImageStoragePath,"."+self.getId()+".dir")              path=os.path.join(self.ImageStoragePath,"."+self.getId()+".dir")
                           
             if not os.path.exists(path):              if not os.path.exists(path):
Line 490  class ImageDigilib(Folder,Persistent,Imp Line 499  class ImageDigilib(Folder,Persistent,Imp
   
             #teste ob version schon existiert              #teste ob version schon existiert
   
             while os.path.exists(os.path.join(path,"V%i_%s"%(versionNumber,self.getId()))):              while os.path.exists(os.path.join(path,"V%i_%s"%(versionNumber,self.filename))):
                     versionNumber+=1                      versionNumber+=1
   
             #kopieren der bestehenden Version in den Versions ordner.              #kopieren der bestehenden Version in den Versions ordner.
             imageNewPath=os.path.join(path,"V%i_%s"%(versionNumber,self.getId()))              imageNewPath=os.path.join(path,"V%i_%s"%(versionNumber,self.filename))
           try:
           #zLOG.LOG("ImageArchive:updateImage", zLOG.INFO, "rename: %s -> %s"%(imagePath,imageNewPath))
             os.rename(imagePath,imageNewPath)              os.rename(imagePath,imageNewPath)
           except:
           zLOG.LOG("ImageArchive:updateImage", zLOG.ERROR, "rename: %s -> %s didn't work!"%(imagePath,imageNewPath))  
   
             #lesen des upload files und schreiben              #lesen des upload files und schreiben
             filedata=file.read()              filedata=file.read()
             f=open(imagePath,"w")              f=open(imagePath,"w") # if we wanted to have filename=id we should do it here!
             f.write(filedata)              f.write(filedata)
             f.close()              f.close()
             try:              try:
Line 524  class ImageDigilib(Folder,Persistent,Imp Line 537  class ImageDigilib(Folder,Persistent,Imp
   
             return "done"              return "done"
                           
       security.declarePublic('thumb')
     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"
Line 597  def manage_AddImageDigilib(self,id,fileu Line 611  def manage_AddImageDigilib(self,id,fileu
     """Add ImageCollection"""      """Add ImageCollection"""
           
     #fileupload=self.REQUEST['fileupload']      #fileupload=self.REQUEST['fileupload']
     fn=splitPath(fileupload.filename)      #fn=splitPath(fileupload.filename)
       fn = id # filename is the same as id
     newObj=ImageDigilib(id,fn,meta)      newObj=ImageDigilib(id,fn,meta)
           
     self._setObject(id,newObj)      self._setObject(id,newObj)
Line 785  class ImageCollection(Folder, Persistent Line 800  class ImageCollection(Folder, Persistent
         """import metadata, if strict ist not None then only metadata will be rebuild where metadata is empty"""          """import metadata, if strict ist not None then only metadata will be rebuild where metadata is empty"""
                   
         for image in self.ZopeFind(self,obj_metatypes=["ImageDigilib"]):          for image in self.ZopeFind(self,obj_metatypes=["ImageDigilib"]):
             print image[1].getId()             
             image[1].manageMetaData(strict)              image[1].manageMetaData(strict)
         return "ok"          return "ok"
                   
Line 919  class ImageCollection(Folder, Persistent Line 934  class ImageCollection(Folder, Persistent
                                   
                 idnr=image.getElementsByTagName('idnr')[0]                  idnr=image.getElementsByTagName('idnr')[0]
                 id=getText(idnr.childNodes)                  id=getText(idnr.childNodes)
                   try:
                 numberOfPages=image.getElementsByTagName('numberOfPages')[0]                  numberOfPages=image.getElementsByTagName('numberOfPages')[0]
                   except:
                       numberOfPages=None
                       
                   if numberOfPages:
                 nopT=getText(numberOfPages.childNodes)                  nopT=getText(numberOfPages.childNodes)
                 try:                  try:
                         nop=int(nopT)                          nop=int(nopT)
                 except:                  except:
                         nop=0                          nop=0
                   else:
                       nop=0
                               
                 texts=getText(imagename.childNodes).split("\n") #mehrere bilder in return getrennter liste                  texts=getText(imagename.childNodes).split("\n") #mehrere bilder in return getrennter liste
                 for text in texts:                  for text in texts:
                     if not text=="":                      if not text=="":
Line 940  class ImageCollection(Folder, Persistent Line 963  class ImageCollection(Folder, Persistent
         self.REQUEST.SESSION['filenames']=rc          self.REQUEST.SESSION['filenames']=rc
         self.REQUEST.SESSION['filenamesIds']=fnIds          self.REQUEST.SESSION['filenamesIds']=fnIds
                   
           overview=self.ZopeFind(self,obj_ids=['overview_selected.html'])
               
           if overview:
                   return overview[0][1]()
           else:
                   pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self)
                   return pt()        
           
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self)
         return pt()                  return pt()        
   
Line 973  class ImageCollection(Folder, Persistent Line 1004  class ImageCollection(Folder, Persistent
         else:          else:
             meta=None              meta=None
                   
         if fileName:          fn=fileName or splitPath(fileupload.filename)
             fn=fileName  
         else:  
             fn=splitPath(fileupload.filename)  
                   
         manage_AddImageDigilib(self,fn,fileupload,meta=meta)          manage_AddImageDigilib(self,fn,fileupload,meta=meta)
                   
Line 1581  class ImageCollection(Folder, Persistent Line 1609  class ImageCollection(Folder, Persistent
                   
                   
     security.declareProtected('View','index_html')      security.declareProtected('View','index_html')
     def index_html(self,fn=None):      def index_html(self,fn=None,generic='No'):
         """main template collection"""          """main template collection"""
           
         if fn:          if fn:
Line 1598  class ImageCollection(Folder, Persistent Line 1626  class ImageCollection(Folder, Persistent
             self.REQUEST.SESSION['filenames']=ret              self.REQUEST.SESSION['filenames']=ret
                 #self.REQUEST.SESSION['filenamesIds']=fnIds                  #self.REQUEST.SESSION['filenamesIds']=fnIds
   
               overview=self.ZopeFind(self,obj_ids=['overview_selected.html'])
               
   
               if overview and (generic =='No'):
                   return overview[0][1]()
               else:
             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self)              pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selected.zpt')).__of__(self)
             return pt()                      return pt()        
   
Line 1616  class ImageCollection(Folder, Persistent Line 1650  class ImageCollection(Folder, Persistent
                           
   
         overview=self.ZopeFind(self,obj_ids=['overview.html'])          overview=self.ZopeFind(self,obj_ids=['overview.html'])
         if overview:          if overview and (generic == 'No'):
             return overview[0][1]()              return overview[0][1]()
         elif hasattr(self,'templates'):          elif hasattr(self,'templates'):
             pt=self.templates.imgcoll_main.__of__(self)              pt=self.templates.imgcoll_main.__of__(self)

Removed from v.1.71  
changed lines
  Added in v.1.76


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