Diff for /versionedFile/versionedFile.py between versions 1.1 and 1.6

version 1.1, 2004/03/22 15:46:07 version 1.6, 2004/07/08 15:15:06
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 Globals import DTMLFile, InitializeClass  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
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
   from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
   import os.path
   
   
 def sortv(x,y):  def sortv(x,y):
     return cmp(x[0],y[0])      return cmp(x[0],y[0])
Line 18  class versionedFileFolder(Folder): Line 21  class versionedFileFolder(Folder):
     security= ClassSecurityInfo()      security= ClassSecurityInfo()
     security.declareProtected('AUTHENTICATED_USER','addFileForm')      security.declareProtected('AUTHENTICATED_USER','addFileForm')
           
       manage_options = Folder.manage_options+(
           {'label':'Generate Index.html','action':'generateIndexHTML'},
                   {'label':'Generate history_template.html','action':'generateHistoryHTML'},
           )
   
       def generateIndexHTML(self,RESPONSE=None):
           """lege standard index.html an"""
   
           
   
           
           if not hasattr(self,'index.html'):
               zt=ZopePageTemplate('index.html')
               self._setObject('index.html',zt)
               default_content_fn = os.path.join(package_home(globals()),
                                                  'zpt/versionFileFolderMain.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 generateHistoryHTML(self,RESPONSE=None):
           """lege standard index.html an"""
   
           
   
           
           if not hasattr(self,'history_template.html'):
               zt=ZopePageTemplate('history_template.html')
               self._setObject('history_template.html',zt)
               default_content_fn = os.path.join(package_home(globals()),
                                                  'zpt/versionHistory.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 getVersionedFiles(self):      def getVersionedFiles(self):
         """get all versioned files"""          """get all versioned files"""
         versionedFiles=self.ZopeFind(self,obj_metatypes="versionedFiles")          
         print versionedFiles      versionedFiles=self.ZopeFind(self,obj_metatypes=['versionedFile'])
          
         return versionedFiles          return versionedFiles
   
           
       def header_html(self):
           """zusätzlicher header"""
           ext=self.ZopeFind(self,obj_ids=["header.html"])
           if ext:
               return ext[0][1]()
           else:
               return ""
           
     def index_html(self):      def index_html(self):
         """main"""          """main"""
           ext=self.ZopeFind(self,obj_ids=["index.html"])
           if ext:
               return ext[0][1]()
           
         pt=PageTemplateFile('Products/versionedFile/zpt/versionFileFolderMain').__of__(self)          pt=PageTemplateFile('Products/versionedFile/zpt/versionFileFolderMain').__of__(self)
         return pt()          return pt()
   
Line 37  class versionedFileFolder(Folder): Line 99  class versionedFileFolder(Folder):
         return out()          return out()
   
   
     def addFile(self,vC,file,content_type='',RESPONSE=None):      def addFile(self,vC,file,author,content_type='',RESPONSE=None):
         """ add a new file"""          """ add a new file"""
         id=file.filename          id=file.filename
                   
Line 45  class versionedFileFolder(Folder): Line 107  class versionedFileFolder(Folder):
         manage_addVersionedFile(self,id,'','')          manage_addVersionedFile(self,id,'','')
         ob=self._getOb(id)          ob=self._getOb(id)
         ob.title=id          ob.title=id
         print "MYVC",vC          file2=file
         ob.manage_addVersionedFileObject(self,id,vC,file,content_type=content_type)          ob.manage_addVersionedFileObject(id,vC,author,file2,content_type=content_type)
   
         RESPONSE.redirect(self.REQUEST['URL1'])          RESPONSE.redirect(self.REQUEST['URL1'])
   
Line 105  class versionedFileObject(File): Line 167  class versionedFileObject(File):
   
     def lastEditor(self):      def lastEditor(self):
         """last Editor"""          """last Editor"""
           if hasattr(self,'author'):
               return self.author            
           else:
         jar=self._p_jar          jar=self._p_jar
         oid=self._p_oid          oid=self._p_oid
   
         if jar is None or oid is None: return None          if jar is None or oid is None: return None
   
         return jar.db().history(oid)[0]['user_name']          return jar.db().history(oid)[0]['user_name']
   
           
Line 115  class versionedFileObject(File): Line 182  class versionedFileObject(File):
                   
 manage_addVersionedFileObjectForm=DTMLFile('dtml/fileAdd', globals(),Kind='VersionedFileObject',kind='versionedFileObject', version='1')  manage_addVersionedFileObjectForm=DTMLFile('dtml/fileAdd', globals(),Kind='VersionedFileObject',kind='versionedFileObject', version='1')
   
 def manage_addVersionedFileObject(self,id,vC='',file='',title='',precondition='', content_type='',  def manage_addVersionedFileObject(self,id,vC='',author='', file='',title='',precondition='', content_type='',
                    REQUEST=None):                     REQUEST=None):
     """Add a new File object.      """Add a new File object.
   
Line 133  def manage_addVersionedFileObject(self,i Line 200  def manage_addVersionedFileObject(self,i
     # First, we create the file without data:      # First, we create the file without data:
     self._setObject(id, versionedFileObject(id,title,'',content_type, precondition))      self._setObject(id, versionedFileObject(id,title,'',content_type, precondition))
     self._getOb(id).versionComment=str(vC)      self._getOb(id).versionComment=str(vC)
       setattr(self._getOb(id),'author',author)
           
     # Now we "upload" the data.  By doing this in two steps, we      # Now we "upload" the data.  By doing this in two steps, we
     # can use a database trick to make the upload more efficient.      # can use a database trick to make the upload more efficient.
Line 150  def manage_addVersionedFileObject(self,i Line 218  def manage_addVersionedFileObject(self,i
 class versionedFile(Folder):  class versionedFile(Folder):
     """Versioniertes File"""      """Versioniertes File"""
   
     def __init__(self, id, title, lockedBy):      def __init__(self, id, title, lockedBy,author):
         """init"""          """init"""
         self.id=id          self.id=id
         self.title=title          self.title=title
         self.lockedBy=lockedBy          self.lockedBy=lockedBy
           self.author=author
                   
     meta_type="versionedFile"      meta_type="versionedFile"
   
Line 162  class versionedFile(Folder): Line 231  class versionedFile(Folder):
         """Last Version"""          """Last Version"""
         tmp=0          tmp=0
         lastVersion=None          lastVersion=None
         print "FI",self.ZopeFind(self)          
         for version in self.ZopeFind(self):          for version in self.ZopeFind(self):
             print version              
             if hasattr(version[1],'versionNumber'):              if hasattr(version[1],'versionNumber'):
                 print "HI",version[1].versionNumber                  
                 if int(version[1].versionNumber) > tmp:                  if int(version[1].versionNumber) > tmp:
                     tmp=int(version[1].versionNumber,)                      tmp=int(version[1].versionNumber,)
                     lastVersion=version[1]                      lastVersion=version[1]
Line 181  class versionedFile(Folder): Line 250  class versionedFile(Folder):
     def getVersion(self):      def getVersion(self):
         tmp=0          tmp=0
         for version in self.ZopeFind(self):          for version in self.ZopeFind(self):
             print version              
             if hasattr(version[1],'versionNumber'):              if hasattr(version[1],'versionNumber'):
                 print "HI",version[1].versionNumber                  
                 if int(version[1].versionNumber) > tmp:                  if int(version[1].versionNumber) > tmp:
                     tmp=int(version[1].versionNumber,)                      tmp=int(version[1].versionNumber,)
         return tmp+1          return tmp+1
Line 193  class versionedFile(Folder): Line 262  class versionedFile(Folder):
   
     def history(self):      def history(self):
         """history"""          """history"""
   
           ext=self.ZopeFind(self.aq_parent,obj_ids=["history_template.html"])
           if ext:
               return getattr(self,ext[0][1].getId())()
           
         pt=PageTemplateFile('Products/versionedFile/zpt/versionHistory').__of__(self)          pt=PageTemplateFile('Products/versionedFile/zpt/versionHistory').__of__(self)
         return pt()          return pt()
   
Line 208  class versionedFile(Folder): Line 282  class versionedFile(Folder):
                   
     def unlock(self,RESPONSE):      def unlock(self,RESPONSE):
         """unlock"""          """unlock"""
         if str(self.lockedBy) in str(self.REQUEST['AUTHENTICATED_USER']):          if str(self.lockedBy) in [str(self.REQUEST['AUTHENTICATED_USER'])]:
             self.lockedBy=''              self.lockedBy=''
             RESPONSE.redirect(self.REQUEST['URL2'])              RESPONSE.redirect(self.REQUEST['URL2'])
         else:          else:
Line 219  class versionedFile(Folder): Line 293  class versionedFile(Folder):
   
     def addVersionedFileObjectForm(self):      def addVersionedFileObjectForm(self):
         """add a new version"""          """add a new version"""
         print self.REQUEST['AUTHENTICATED_USER']          
         if str(self.REQUEST['AUTHENTICATED_USER']) in "Anonymous User":          if str(self.REQUEST['AUTHENTICATED_USER']) in ["Anonymous User"]:
             return "please login first"              return "please login first"
         if (self.lockedBy==self.REQUEST['AUTHENTICATED_USER']) or (self.lockedBy==''):          if (self.lockedBy==self.REQUEST['AUTHENTICATED_USER']) or (self.lockedBy==''):
             out=DTMLFile('dtml/fileAdd', globals(),Kind='VersionedFileObject',kind='versionedFileObject',version=self.getVersion()).__of__(self)              out=DTMLFile('dtml/fileAdd', globals(),Kind='VersionedFileObject',kind='versionedFileObject',version=self.getVersion()).__of__(self)
Line 228  class versionedFile(Folder): Line 302  class versionedFile(Folder):
         else:          else:
             return "Sorry file is locked by somebody else"              return "Sorry file is locked by somebody else"
                   
     def manage_addVersionedFileObject(self,id,vC,file='',title='',precondition='', content_type='',RESPONSE=None):      def manage_addVersionedFileObject(self,id,vC,author,file='',title='',precondition='', content_type='',changeName='no',RESPONSE=None):
         """add"""          """add"""
                   
         vC=self.REQUEST['vC']          vC=self.REQUEST['vC']
           author=self.REQUEST['author']
           
           if changeName=="yes":
               self.title=file.filename[0:]
   
   
         id="V%i"%self.getVersion()+"_"+self.title          id="V%i"%self.getVersion()+"_"+self.title
         manage_addVersionedFileObject(self,id,vC,file,"V%i"%self.getVersion()+"_"+self.title,precondition, content_type)          manage_addVersionedFileObject(self,id,vC,author,file,"V%i"%self.getVersion()+"_"+self.title,precondition, content_type)
         objs=self.ZopeFind(self,obj_ids=[id])[0][1].setVersionNumber(int(self.getVersion()))          objs=self.ZopeFind(self,obj_ids=[id])[0][1].setVersionNumber(int(self.getVersion()))
   
         if RESPONSE:          if RESPONSE:
Line 256  def manage_addVersionedFileForm(self): Line 336  def manage_addVersionedFileForm(self):
     pt=PageTemplateFile('Products/versionedFile/zpt/addVersionedFile.zpt').__of__(self)      pt=PageTemplateFile('Products/versionedFile/zpt/addVersionedFile.zpt').__of__(self)
     return pt()      return pt()
   
 def manage_addVersionedFile(self,id,title,lockedBy, RESPONSE=None):  def manage_addVersionedFile(self,id,title,lockedBy, author=None, RESPONSE=None):
     """add the OSAS_root"""      """add the OSAS_root"""
     newObj=versionedFile(id,title,lockedBy)      newObj=versionedFile(id,title,lockedBy,author)
     self._setObject(id,newObj)      self._setObject(id,newObj)
      
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   

Removed from v.1.1  
changed lines
  Added in v.1.6


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