Diff for /versionedFile/versionedFile.py between versions 1.36 and 1.40

version 1.36, 2005/06/21 08:56:04 version 1.40, 2005/07/06 15:00:07
Line 7  from AccessControl import getSecurityMan Line 7  from AccessControl import getSecurityMan
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
   from Products.ImageArchive.ImageArchive import manage_AddImageZogiLib
   
 from threading import Thread  from threading import Thread
 import shutil  import shutil
 import tempfile  import tempfile
 import os.path  import os.path
   
   
 import time  import time
 try:  try:
     from Products.ECHO_content.ECHO_collection import ECHO_basis      from Products.ECHO_content.ECHO_collection import ECHO_basis
Line 25  except: Line 27  except:
           
 def sortv(x,y):  def sortv(x,y):
     return cmp(x[0],y[0])      return cmp(x[0],y[0])
 tdir = "/tmp/testia"  tdir = "/tmp/downloadVersionedFiles"
   
 class generateDownloadZip:  class generateDownloadZip:
     """generateDownloadSet"""      """generateDownloadSet"""
Line 52  class generateDownloadZip: Line 54  class generateDownloadZip:
         if not os.path.exists(tmpPath):          if not os.path.exists(tmpPath):
             os.mkdir(tmpPath)               os.mkdir(tmpPath) 
                   
     self.response="<h3>1. step: gettung the files</h3>"      self.response="<h3>1. step: getting the files</h3>"
   
         for files in self.folder.ZopeFind(self.folder,obj_metatypes=['versionedFile']):          for files in self.folder.ZopeFind(self.folder,obj_metatypes=['versionedFile']):
             lastV=files[1].getLastVersion()              lastV=files[1].getLastVersion()
Line 118  class versionedFileFolder(Folder,ECHO_ba Line 120  class versionedFileFolder(Folder,ECHO_ba
   
     manage_options =optTMP+(      manage_options =optTMP+(
         {'label':'Generate Index.html','action':'generateIndexHTML'},          {'label':'Generate Index.html','action':'generateIndexHTML'},
                   {'label':'Generate Image Index.html','action':'generateIndexHTML_image'},
                 {'label':'Generate history_template.html','action':'generateHistoryHTML'},                  {'label':'Generate history_template.html','action':'generateHistoryHTML'},
                 {'label':'Import Folder','action':'importFolderForm'},                  {'label':'Import Folder','action':'importFolderForm'},
                 {'label':'Export Folder','action':'exportFolder'},                  {'label':'Export Folder','action':'exportFolder'},
Line 156  class versionedFileFolder(Folder,ECHO_ba Line 159  class versionedFileFolder(Folder,ECHO_ba
         """exportiert alle akutellen files des folders"""          """exportiert alle akutellen files des folders"""
         threadName=repeat          threadName=repeat
                   
                                  downloadZip=generateDownloadZip(self,self.absolute_url())
         if not threadName or threadName=="":          downloadZip()
             threadStart=generateDownloadZip(self,self.absolute_url())          return downloadZip.getResult()
             thread=Thread(target=threadStart)         ##  if not threadName or threadName=="":
               ##             threadStart=generateDownloadZip(self,self.absolute_url())
             thread.start()  ##             thread=Thread(target=threadStart)
               
                       ##             thread.start()
             self.zipThreads[thread.getName()[0:]]=threadStart  
             self.zipThreads2[thread.getName()[0:]]=thread                      
             self.REQUEST.SESSION['threadName']=thread.getName()[0:]  ##             self.zipThreads[thread.getName()[0:]]=threadStart
             wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template'])  ##             self.zipThreads2[thread.getName()[0:]]=thread
             if wait_template:  ##             self.REQUEST.SESSION['threadName']=thread.getName()[0:]
                 return wait_template[0][1]()  ##             wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template'])
             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self)  ##             if wait_template:
             return pt()  ##                 return wait_template[0][1]()
                   ##             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self)
         else:  ##             return pt()
             self.REQUEST.SESSION['threadName']=threadName                  
   ##         else:
             if (self.zipThreads[threadName].getResult()==None):  ##             self.REQUEST.SESSION['threadName']=threadName
   
                 wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template'])  ##             if (self.zipThreads[threadName].getResult()==None):
                 if wait_template:  
                     return wait_template[0][1]()  ##                 wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template'])
   ##                 if wait_template:
                 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self)  ##                     return wait_template[0][1]()
                 return pt()  
             else:  ##                 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self)
                 if self.zipThreads[threadName].isDone():  ##                 return pt()
                     self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()  ##             else:
                     self.zipThreads2[threadName].join()  ##                 if self.zipThreads[threadName].isDone():
                     del(self.zipThreads2[threadName])  ##                     self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()
                     del(self.zipThreads[threadName])  ##                     self.zipThreads2[threadName].join()
                     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_result.zpt')).__of__(self)  ##                     del(self.zipThreads2[threadName])
                     return pt()  ##                     del(self.zipThreads[threadName])
   ##                     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_result.zpt')).__of__(self)
                 else:  ##                     return pt()
                     self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()  
                     self.REQUEST.SESSION['threadName']=threadName  ##                 else:
                     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait_result.zpt')).__of__(self)  ##                     self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()
                     return pt()  ##                     self.REQUEST.SESSION['threadName']=threadName
   ##                     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait_result.zpt')).__of__(self)
   ##                     return pt()
   
     def downloadSet(self,fn):      def downloadSet(self,fn):
         """download prepared set"""          """download prepared set"""
         filename=os.path.join(tdir,fn)          filename=os.path.join(tdir,fn)
   
                   
         self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"donloadFileFolder.tgz")          self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"downloadFileFolder.tgz")
         self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")          self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")
         len=os.stat(filename)[6]          len=os.stat(filename)[6]
         self.REQUEST.RESPONSE.setHeader("Content-Length",len)          self.REQUEST.RESPONSE.setHeader("Content-Length",len)
Line 220  class versionedFileFolder(Folder,ECHO_ba Line 225  class versionedFileFolder(Folder,ECHO_ba
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','helpDownload')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','helpDownload')).__of__(self)
         return pt()          return pt()
           
       def generateIndexHTML_image(self,RESPONSE=None):
           """lege standard index.html an"""
   
   
           if not self.ZopeFind(self,obj_ids=['index.html']):
               zt=ZopePageTemplate('index.html')
               self._setObject('index.html',zt)
               default_content_fn = os.path.join(package_home(globals()),
                                                  'zpt/versionFileFolderMain_image.zpt')
               text = open(default_content_fn).read()
               zt.pt_edit(text, 'text/html')
   
           else:
               return "already exists!"
           
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
     def generateIndexHTML(self,RESPONSE=None):      def generateIndexHTML(self,RESPONSE=None):
         """lege standard index.html an"""          """lege standard index.html an"""
   
Line 435  class versionedFileObject(File): Line 458  class versionedFileObject(File):
                                Kind='File',kind='file')                                 Kind='File',kind='file')
     manage_editForm._setName('manage_editForm')      manage_editForm._setName('manage_editForm')
   
   
     def getVComment(self):      def getVComment(self):
         """get the comment of this file"""          """get the comment of this file"""
         if not hasattr(self,'vComment') or (not self.vComment) or (self.vComment.lstrip()==""):          if not hasattr(self,'vComment') or (not self.vComment) or (self.vComment.lstrip()==""):
Line 585  class versionedFile(Folder): Line 609  class versionedFile(Folder):
         self.lockedBy=lockedBy          self.lockedBy=lockedBy
         self.author=author          self.author=author
   
       def manageImagesForm(self):
           """manage Images attached to the file"""
   
           self.REQUEST.SESSION['refer']=self.REQUEST['HTTP_REFERER']
           
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageImage')).__of__(self)
           return pt()
   
       def manageImages(self,imageUrl=None,caption=None,REQUEST=None):
           """manage URL"""
           if imageUrl and (not imageUrl==""):
               manage_AddImageZogiLib(self,libPath=imageUrl,caption=caption)
   
           if self.REQUEST.SESSION.has_key('refer'):
   
               return REQUEST.RESPONSE.redirect(self.REQUEST.SESSION['refer'])
           return REQUEST.RESPONSE.redirect(self.aq_parent.absolute_url())
       
       
       
       def changeImages(self,caption=None,submit=None,id=None,REQUEST=None):
           """manage URL"""
           if submit=="change caption":
               image=self.ZopeFind(self,obj_ids=[id])
               if image:
                   image[0][1].caption=caption[0:]
           
           elif submit=="delete":
               image=self.ZopeFind(self,obj_ids=[id])
               if image:
                   self.manage_delObjects([image[0][1].getId()])
   
   
           if self.REQUEST.SESSION.has_key('refer'):
   
               return REQUEST.RESPONSE.redirect(self.REQUEST.SESSION['refer'])
           return REQUEST.RESPONSE.redirect(self.aq_parent.absolute_url())
       
           
   
   
       def getImages(self):
           """get Images"""
           images=self.ZopeFind(self,obj_metatypes=["ImageZogiLib"])
           if not images:
               return None
           else:
               return images
                                
           
     def getComment(self):      def getComment(self):
         """get the comment of this file"""          """get the comment of this file"""
         if not hasattr(self,'comment') or (not self.comment) or (self.comment.lstrip()==""):          if not hasattr(self,'comment') or (not self.comment) or (self.comment.lstrip()==""):

Removed from v.1.36  
changed lines
  Added in v.1.40


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