Diff for /versionedFile/extVersionedFile.py between versions 1.33 and 1.37

version 1.33, 2009/06/24 11:24:05 version 1.37, 2010/05/12 10:58:21
Line 156  class extVersionedFileFolder(Folder,ECHO Line 156  class extVersionedFileFolder(Folder,ECHO
         RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT')          RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT')
         logging.error(email.Utils.formatdate()+' GMT')          logging.error(email.Utils.formatdate()+' GMT')
         RESPONSE.redirect(url+addStr%timeStamp)          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 426  class extVersionedFileFolder(Folder,ECHO Line 427  class extVersionedFileFolder(Folder,ECHO
             return cmp(x[1].title.lower(),y[1].title.lower())              return cmp(x[1].title.lower(),y[1].title.lower())
   
         def sortDate(x,y):          def sortDate(x,y):
       
             return cmp(y[1].getContentObject().getTime(),x[1].getContentObject().getTime())              return cmp(y[1].getContentObject().getTime(),x[1].getContentObject().getTime())
   
         def sortComment(x,y):          def sortComment(x,y):
Line 445  class extVersionedFileFolder(Folder,ECHO Line 447  class extVersionedFileFolder(Folder,ECHO
                 except:                  except:
                     xc='ZZZZZZZZZZZZZ'.lower()                      xc='ZZZZZZZZZZZZZ'.lower()
                                                           
                               
             if (yc=='') or (yc=='ZZZZZZZZZZZZZ'.lower()):              if (yc=='') or (yc=='ZZZZZZZZZZZZZ'.lower()):
                 try:                  try:
                     yc=y[1].getContentObject().getVComment().lower()                      yc=y[1].getContentObject().getVComment().lower()
                 except:                  except:
                     yc='ZZZZZZZZZZZZZ'.lower()                      yc='ZZZZZZZZZZZZZ'.lower()
                                                                           
                                       
             return cmp(xc,yc)              return cmp(xc,yc)
   
         def sortAuthor(x,y):          def sortAuthor(x,y):
                           
             return cmp(x[1].getContentObject().lastEditor().lower(),y[1].getContentObject().lastEditor().lower())              return cmp(x[1].getContentObject().lastEditor().lower(),y[1].getContentObject().lastEditor().lower())
                   
               
           def sortVersionComment(x,y):
            
                   return cmp(x[1].getContentObject().getVersionComment().lower(),y[1].getContentObject().getVersionComment().lower())
             
         versionedFiles=self.objectItems(self.file_meta_type)          versionedFiles=self.objectItems(self.file_meta_type)
         logging.debug("versionedfiles: %s of type %s"%(repr(versionedFiles),repr(self.file_meta_type)))          logging.debug("versionedfiles: %s of type %s"%(repr(versionedFiles),repr(self.file_meta_type)))
                   
Line 466  class extVersionedFileFolder(Folder,ECHO Line 475  class extVersionedFileFolder(Folder,ECHO
             versionedFiles.sort(sortDate)              versionedFiles.sort(sortDate)
         elif sortField=='author':          elif sortField=='author':
             versionedFiles.sort(sortAuthor)              versionedFiles.sort(sortAuthor)
           elif sortField=='versioncomment':
               versionedFiles.sort(sortVersionComment)
         elif sortField=='comment':          elif sortField=='comment':
             versionedFiles.sort(sortComment)              versionedFiles.sort(sortComment)
   
   
         return versionedFiles          return versionedFiles
   
   
Line 530  class extVersionedFileFolder(Folder,ECHO Line 542  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 739  class extVersionedFileObject(ExtFile): Line 754  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=="") or (self.aq_parent.lockedBy==None))):
             return "cannot be locked because is already locked by %s"%self.lockedBy              return "cannot be locked because is already locked by %s"%self.lockedBy
         self.aq_parent.lockedBy=self.REQUEST['AUTHENTICATED_USER']          self.aq_parent.lockedBy=self.REQUEST['AUTHENTICATED_USER']
   
Line 756  class extVersionedFileObject(ExtFile): Line 769  class extVersionedFileObject(ExtFile):
         return self.versionNumber          return self.versionNumber
   
     security.declarePublic('getVersionComment')                                                    security.declarePublic('getVersionComment')                                              
     def getVersionComment(self):    
         """get version"""  
         return self.versionComment  
   
     security.declarePublic('lastEditor')                                                      security.declarePublic('lastEditor')                                                
     def lastEditor(self):      def lastEditor(self):
Line 827  class extVersionedFile(CatalogAware,Fold Line 838  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 837  class extVersionedFile(CatalogAware,Fold Line 848  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 963  class extVersionedFile(CatalogAware,Fold Line 975  class extVersionedFile(CatalogAware,Fold
     security.declarePublic('getLastVersion')      security.declarePublic('getLastVersion')
     def getLastVersion(self):      def getLastVersion(self):
         """Last Version (old)"""          """Last Version (old)"""
         tmp=0  #        tmp=0
         lv=None  #        lv=None
           #        
         for v in self.objectValues(self.content_meta_type):  #        for v in self.objectValues(self.content_meta_type):
             #logging.debug("getlastversion: check %s"%v.getId())  #            #logging.debug("getlastversion: check %s"%v.getId())
             if v.getVersionNumber() > tmp:  #            if v.getVersionNumber() > tmp:
                     tmp=v.getVersionNumber()  #                    tmp=v.getVersionNumber()
                     lv=v  #                    lv=v
           #        
         #ogging.debug("getlastversion: got %s"%lv.getId())  #        #ogging.debug("getlastversion: got %s"%lv.getId())
         return lv  #        return lv
           return self.getContentObject();
   
     def getContentObject(self):      def getContentObject(self):
         """returns the last version object"""          """returns the last version object"""
         if not getattr(self, 'lastVersionId', None):          if (not getattr(self, 'lastVersionId', None)) or (not getattr(self, self.lastVersionId, None)):
             # find last version and save it              # find last version and save it
             lv = self.findLastVersion()              lv = self.findLastVersion()
             if lv is None:              if lv is None:
                 return None                  return None
             self.lastVersionNumber = lv.getVersionNumber()              self.lastVersionNumber = lv.getVersionNumber()
             self.lastVersionId = lv.getId()              self.lastVersionId = lv.getId()
               
         return getattr(self, self.lastVersionId, None)          return getattr(self, self.lastVersionId, None)
   
     security.declarePublic('getData')      security.declarePublic('getData')
Line 1027  class extVersionedFile(CatalogAware,Fold Line 1039  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 1190  class extVersionedFile(CatalogAware,Fold Line 1206  class extVersionedFile(CatalogAware,Fold
                   
         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=='') or (self.lockedBy==None):
             ext=self.ZopeFind(self.aq_parent,obj_ids=["addNewVersion.dtml"])              ext=self.ZopeFind(self.aq_parent,obj_ids=["addNewVersion.dtml"])
             if ext:              if ext:
                 return ext[0][1]('',globals(),version=self.getVersion(),lastComment=self.getContentObject().getVersionComment(),AUTHENTICATED_USER=self.REQUEST.AUTHENTICATED_USER)                  return ext[0][1]('',globals(),version=self.getVersion(),lastComment=self.getContentObject().getVersionComment(),AUTHENTICATED_USER=self.REQUEST.AUTHENTICATED_USER)
Line 1229  class extVersionedFile(CatalogAware,Fold Line 1245  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 1261  class extVersionedFile(CatalogAware,Fold Line 1278  class extVersionedFile(CatalogAware,Fold
   
         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.lockedBy=="":          if not ((self.lockedBy=="") or (self.lockedBy==None)):
             return "cannot be locked because is already locked by %s"%self.lockedBy              return "cannot be locked because is already locked by %s"%self.lockedBy
         self.lockedBy=self.REQUEST['AUTHENTICATED_USER']          self.lockedBy=self.REQUEST['AUTHENTICATED_USER']
         self.getContentObject().content_type="application/octet-stream"          self.getContentObject().content_type="application/octet-stream"
Line 1294  def manage_addextVersionedFileForm(self) Line 1311  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.33  
changed lines
  Added in v.1.37


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