Diff for /versionedFile/versionedFile.py between versions 1.63 and 1.71

version 1.63, 2006/06/17 16:32:12 version 1.71, 2007/09/10 19:27:55
Line 1 Line 1
 from OFS.Folder import Folder  from OFS.Folder import Folder
 from OFS.Image import File  from OFS.Image import File
 from OFS.Image import cookId  from OFS.Image import cookId
   from OFS.DTMLDocument import DTMLDocument
 from Globals import DTMLFile, InitializeClass,package_home  from Globals import DTMLFile, InitializeClass,package_home
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from AccessControl import getSecurityManager  from AccessControl import getSecurityManager
Line 9  from Products.PageTemplates.ZopePageTemp Line 10  from Products.PageTemplates.ZopePageTemp
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
 from difflib import Differ  from difflib import Differ
 from pprint import pprint  from pprint import pprint
   
 from Products.ZCatalog.CatalogPathAwareness import CatalogAware  from Products.ZCatalog.CatalogPathAwareness import CatalogAware
   
 try:  try:
Line 23  import shutil Line 23  import shutil
 import tempfile  import tempfile
 import os.path  import os.path
 import urllib  import urllib
   import logging
 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 36  except: Line 36  except:
           
 def sortv(x,y):  def sortv(x,y):
     return cmp(x[0],y[0])      return cmp(x[0],y[0])
   
 tdir = "/tmp/downloadVersionedFiles"  tdir = "/tmp/downloadVersionedFiles"
   
 class generateDownloadZip:  class generateDownloadZip:
Line 63  class generateDownloadZip: Line 64  class generateDownloadZip:
         if not os.path.exists(tmpPath):          if not os.path.exists(tmpPath):
             os.mkdir(tmpPath)               os.mkdir(tmpPath) 
                   
           tempfile.tempdir=storeTempDir
     self.response="<h3>1. step: getting 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']):
Line 71  class generateDownloadZip: Line 73  class generateDownloadZip:
   
             savePath=os.path.join(tmpPath,lastV.title)              savePath=os.path.join(tmpPath,lastV.title)
             fh=file(savePath,"w")              fh=file(savePath,"w")
             fh.write(lastV.data)              logging.debug("writing file %1 data in %s"%(lastV.title,savePath))
               # loop to get OFS.Image.File data
               data=lastV.data
               if isinstance(data, str):
                   fh.write(data)
               else:
                   while data is not None:
                       fh.write(data.data)
                       data=data.next
   
             fh.close()              fh.close()
   
         self.response+="<h3>2. step: creating the downloadable file</h3>"          self.response+="<h3>2. step: creating the downloadable file</h3>"
Line 131  class versionedFileFolder(Folder,ECHO_ba Line 142  class versionedFileFolder(Folder,ECHO_ba
         {'label':'Generate Index.html','action':'generateIndexHTML'},          {'label':'Generate Index.html','action':'generateIndexHTML'},
                 {'label':'Generate Image Index.html','action':'generateIndexHTML_image'},                  {'label':'Generate Image Index.html','action':'generateIndexHTML_image'},
                 {'label':'Generate history_template.html','action':'generateHistoryHTML'},                  {'label':'Generate history_template.html','action':'generateHistoryHTML'},
                   {'label':'Generate addFileForm','action':'generateAddFileForm'},
                 {'label':'Import Folder','action':'importFolderForm'},                  {'label':'Import Folder','action':'importFolderForm'},
                 {'label':'Export Folder','action':'exportFolder'},                  {'label':'Export Folder','action':'exportFolder'},
                 {'label':'Position of version number','action':'changeHistoryFileNamesForm'},                  {'label':'Position of version number','action':'changeHistoryFileNamesForm'},
                 )                  )
   
               
     def changeHistoryFileNamesForm(self):      def changeHistoryFileNamesForm(self):
         """change position of version num"""          """change position of version num"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeHistoryFileNamesForm.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeHistoryFileNamesForm.zpt')).__of__(self)
Line 304  class versionedFileFolder(Folder,ECHO_ba Line 317  class versionedFileFolder(Folder,ECHO_ba
         """lege standard addfileform an"""          """lege standard addfileform an"""
         #TODO: write generateaddfileform only a dummy at them moment          #TODO: write generateaddfileform only a dummy at them moment
   
         if not self.ZopeFind(self,obj_ids=['addFileForm.dtml']):          if not self.ZopeFind(self,obj_ids=['addFileForm.html']):
             zt=ZopePageTemplate('index.html')              zt=ZopePageTemplate('addFileForm.html')
             self._setObject('index.html',zt)              self._setObject('addFileForm.html',zt)
             default_content_fn = os.path.join(package_home(globals()),              default_content_fn = os.path.join(package_home(globals()),
                                                'zpt/versionFileFolderMain.zpt')                                                 'zpt/fileAdd_template.zpt')
             text = open(default_content_fn).read()              text = open(default_content_fn).read()
             zt.pt_edit(text, 'text/html')              zt.pt_edit(text, 'text/html')
   
Line 442  class versionedFileFolder(Folder,ECHO_ba Line 455  class versionedFileFolder(Folder,ECHO_ba
   
     def addFileForm(self):      def addFileForm(self):
         """add a file"""          """add a file"""
         ext=self.ZopeFind(self,obj_ids=["addFileForm.dtml"])          ext=getattr(self,'addFileForm.html',None)
           logging.error("Found %s"%ext)
         if ext:          if ext:
             return ext[0][1]('',globals(),version='1',AUTHENTICATED_USER=self.REQUEST.AUTHENTICATED_USER)              out=ext
           else:
                   
         out=DTMLFile('dtml/newFileAdd', globals(),Kind='VersionedFileObject',kind='versionedFileObject',version='1').__of__(self)          out=DTMLFile('dtml/newFileAdd', globals(),Kind='VersionedFileObject',kind='versionedFileObject',version='1').__of__(self)
         return out()          return out()
Line 650  class versionedFileObject(File): Line 665  class versionedFileObject(File):
         """get version"""          """get version"""
         return self.versionNumber          return self.versionNumber
   
     security.declarePublic('getVersionComment')                                                
     def getVersionComment(self):  
         """get version"""  
         return self.versionComment  
   
         
   
Line 860  class versionedFile(CatalogAware,Folder) Line 871  class versionedFile(CatalogAware,Folder)
     def diff(self,data):      def diff(self,data):
         """differenz between lastversion and data"""          """differenz between lastversion and data"""
         d=Differ()          d=Differ()
         tmp=self.getLastVersion().data          data=data.rstrip()
           try:
               tmp=self.getLastVersion().data.rstrip()
           except:
               tmp=str(self.getLastVersion().data).rstrip()
         #print "XX",data,tmp          #print "XX",data,tmp
   
           try:
         l=list(d.compare(data.splitlines(1),tmp.splitlines(1)))          l=list(d.compare(data.splitlines(1),tmp.splitlines(1)))
           except:
                   try:
                           l=list(d.compare(repr(data).splitlines(1),tmp.splitlines(1)))
                   except:
                           return 9999,[]
                   
         plus=0          plus=0
         minus=0          minus=0
   
         for a in l:          for a in l:
             if a[0]=='+':              if a[0]=='+':
                 plus+=1                  plus+=1

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


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