Diff for /versionedFile/extVersionedFile.py between versions 1.30 and 1.35

version 1.30, 2008/10/29 12:12:25 version 1.35, 2010/03/31 17:07:43
Line 3  using the ExtFile Product, this version Line 3  using the ExtFile Product, this version
 DW 11.10.2006  DW 11.10.2006
 """  """
   
   import email
 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
Line 142  class extVersionedFileFolder(Folder,ECHO Line 143  class extVersionedFileFolder(Folder,ECHO
         )          )
   
           
       def redirect(self,RESPONSE,url):
           """mache ein redirect mit einem angehaengten time stamp um ein reload zu erzwingen"""
           
           timeStamp=time.time()
           
           if url.find("?")>-1: #giebt es schon parameter
               addStr="&time=%s"
           else:
               addStr="?time=%s"
               
           RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT')
           logging.error(email.Utils.formatdate()+' GMT')
           RESPONSE.redirect(url+addStr%timeStamp)
           
     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 516  class extVersionedFileFolder(Folder,ECHO Line 531  class extVersionedFileFolder(Folder,ECHO
         vf = self._newVersionedFile(id,title=id)          vf = self._newVersionedFile(id,title=id)
         logging.error("addFile id=%s vf=%s of %s"%(repr(id),repr(vf),repr(self)))          logging.error("addFile id=%s vf=%s of %s"%(repr(id),repr(vf),repr(self)))
         # add its content (and don't index)          # add its content (and don't index)
           self._setObject(id,vf)
           vf=getattr(self,id)
   
         obj=vf.addContentObject(id,vC,author=author,file=file,content_type=content_type,from_tmp=isRealFile,index=False)          obj=vf.addContentObject(id,vC,author=author,file=file,content_type=content_type,from_tmp=isRealFile,index=False)
         # add file to this folder (this should do the indexing)          # add file to this folder (this should do the indexing)
         self._setObject(id,vf)          #self._setObject(id,vf)
                   
         try:          try:
             self.REQUEST.SESSION['objID']=vf.getId()              self.REQUEST.SESSION['objID']=vf.getId()
Line 632  class extVersionedFileObject(ExtFile): Line 650  class extVersionedFileObject(ExtFile):
         filename = self.get_filename()          filename = self.get_filename()
         #return ExtFile.index_html(self)          #return ExtFile.index_html(self)
         try:          try:
               logging.info("readfile:"+filename)
             return file(filename).read()              return file(filename).read()
         except:          except:
               logging.info("cannot readfile:"+filename)
             return ExtFile.index_html(self)              return ExtFile.index_html(self)
   
           
Line 723  class extVersionedFileObject(ExtFile): Line 743  class extVersionedFileObject(ExtFile):
     security.declareProtected('AUTHENTICATED_USER','downloadLocked')          security.declareProtected('AUTHENTICATED_USER','downloadLocked')    
     def downloadLocked(self):      def downloadLocked(self):
         """download and lock"""          """download and lock"""
           
           
         if repr(self.REQUEST['AUTHENTICATED_USER'])=='Anonymous User':          if repr(self.REQUEST['AUTHENTICATED_USER'])=='Anonymous User':
             return "please login first"              return "please login first"
         if not self.aq_parent.lockedBy=="":          if not self.aq_parent.lockedBy=="":
Line 811  class extVersionedFile(CatalogAware,Fold Line 829  class extVersionedFile(CatalogAware,Fold
           
     security=ClassSecurityInfo()         security=ClassSecurityInfo()   
           
     def __init__(self, id, title, lockedBy,author):      def __init__(self, id, title, lockedBy,author,defaultAction='history'):
         """init"""          """init"""
         self.id=id          self.id=id
         self.title=title          self.title=title
Line 821  class extVersionedFile(CatalogAware,Fold Line 839  class extVersionedFile(CatalogAware,Fold
         self.author=author          self.author=author
         self.lastVersionNumber=0          self.lastVersionNumber=0
         self.lastVersionId=None          self.lastVersionId=None
           self.defaultAction = defaultAction
   
     security.declarePublic('getTitle')      security.declarePublic('getTitle')
     def getTitle(self):      def getTitle(self):
Line 1011  class extVersionedFile(CatalogAware,Fold Line 1030  class extVersionedFile(CatalogAware,Fold
   
   
     security.declarePublic('index_html')      security.declarePublic('index_html')
     def index_html(self):      def index_html(self,REQUEST=None, RESPONSE=None):
         """main view"""          """main view"""
         #lastVersion=self.getContentObject()          #lastVersion=self.getContentObject()
         #return "File:"+self.title+"  Version:%i"%lastVersion.versionNumber," modified:",lastVersion.bobobase_modification_time()," size:",lastVersion.getSize(),"modified by:",lastVersion.lastEditor()          #return "File:"+self.title+"  Version:%i"%lastVersion.versionNumber," modified:",lastVersion.bobobase_modification_time()," size:",lastVersion.getSize(),"modified by:",lastVersion.lastEditor()
         #return "File: %s Version:%i modified:%s size:%s modified by:%s"%(self.title,lastVersion.versionNumber,lastVersion.getTime(),lastVersion.getSize(),lastVersion.lastEditor())          #return "File: %s Version:%i modified:%s size:%s modified by:%s"%(self.title,lastVersion.versionNumber,lastVersion.getTime(),lastVersion.getSize(),lastVersion.lastEditor())
           act = getattr(self, 'defaultAction', 'history')
           if act == 'download':
               return self.getContentObject().download()
           elif act == 'view':
               #return self.getContentObject().download()
               return self.getContentObject().index_html(REQUEST=REQUEST, RESPONSE=RESPONSE)
           else:
         return self.history()          return self.history()
   
     def getVersionNr(self,nr):      def getVersionNr(self,nr):
         """get version with number nr"""          """get version with number nr"""
         tmp=0          tmp=0
         lastVersion=None          lastVersion=None
           
           
         for version in self.ZopeFind(self):          for version in self.ZopeFind(self):
               
             if hasattr(version[1],'versionNumber'):              if hasattr(version[1],'versionNumber'):
                   
                 if int(version[1].versionNumber) ==nr :                  if int(version[1].versionNumber) ==nr :
                     return version[1]                      return version[1]
                         
         return None          return None
       
     security.declarePublic('getVersion')                                                    security.declarePublic('getVersion')                                              
     def getVersion(self):      def getVersion(self):
         # TODO: this is ugly and it returns the next version number           # TODO: this is ugly and it returns the next version number 
Line 1076  class extVersionedFile(CatalogAware,Fold Line 1099  class extVersionedFile(CatalogAware,Fold
         return vl          return vl
   
     security.declareProtected('AUTHENTICATED_USER','forceunlock')         security.declareProtected('AUTHENTICATED_USER','forceunlock')   
     def forceunlock(self,RESPONSE=None):      def forceunlock(self,RESPONSE=None,user=None):
         """unlock"""          """unlock"""
         #safe who had the lock          #safe who had the lock
           logging.debug("extVersionFile: (forceunlock)"+str(user))
         if self.lockedBy:          if self.lockedBy:
               if user is not None:
                   if str(self.lockedBy)==user:
             self.brokenLock=str(self.lockedBy)              self.brokenLock=str(self.lockedBy)
                       self.lockedBy=''
         else:          else:
             self.brokenLock=""              self.brokenLock=""
               else:
                   self.brokenLock=str(self.lockedBy)
         self.lockedBy=''          self.lockedBy=''
           else:
               self.brokenLock=""
           
         return self.brokenLock          return self.brokenLock
   
     security.declareProtected('AUTHENTICATED_USER','unlock')         security.declareProtected('AUTHENTICATED_USER','unlock')   
Line 1096  class extVersionedFile(CatalogAware,Fold Line 1128  class extVersionedFile(CatalogAware,Fold
             return "Sorry, not locked by you! (%s,%s)"%(self.lockedBy,self.REQUEST['AUTHENTICATED_USER'])              return "Sorry, not locked by you! (%s,%s)"%(self.lockedBy,self.REQUEST['AUTHENTICATED_USER'])
                   
           
   
     def _newContentObject(self, id, title='', versionNumber=0, versionComment=None, time=None, author=None):      def _newContentObject(self, id, title='', versionNumber=0, versionComment=None, time=None, author=None):
         """factory for content objects. to be overridden in derived classes."""          """factory for content objects. to be overridden in derived classes."""
         return extVersionedFileObject(id,title,versionNumber=versionNumber,versionComment=versionComment,time=time,author=author)          return extVersionedFileObject(id,title,versionNumber=versionNumber,versionComment=versionComment,time=time,author=author)
Line 1203  class extVersionedFile(CatalogAware,Fold Line 1236  class extVersionedFile(CatalogAware,Fold
   
     changeVersionedFileForm = PageTemplateFile('zpt/changeVersionedFile', globals())      changeVersionedFileForm = PageTemplateFile('zpt/changeVersionedFile', globals())
           
     def manage_changeVersionedFile(self,title,vC,author,comment,RESPONSE=None):      def manage_changeVersionedFile(self,title,vC,author,comment,defaultAction='history',RESPONSE=None):
         """Change VersionedFile metadata"""          """Change VersionedFile metadata"""
         self.title = title          self.title = title
         self.author = author          self.author = author
           self.defaultAction = defaultAction
         cob = self.getContentObject()          cob = self.getContentObject()
         if cob:          if cob:
             if vC:              if vC:
Line 1268  def manage_addextVersionedFileForm(self) Line 1302  def manage_addextVersionedFileForm(self)
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addextVersionedFile.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addextVersionedFile.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_addextVersionedFile(self,id,title,lockedBy, author=None, RESPONSE=None):  def manage_addextVersionedFile(self,id,title,lockedBy, author=None, defaultAction='history', RESPONSE=None):
     """add the OSAS_root"""      """add the OSAS_root"""
     newObj=extVersionedFile(id,title,lockedBy,author)      newObj=extVersionedFile(id,title,lockedBy,author,defaultAction=defaultAction)
     self._setObject(id,newObj)      self._setObject(id,newObj)
           
     if RESPONSE is not None:      if RESPONSE is not None:

Removed from v.1.30  
changed lines
  Added in v.1.35


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