--- versionedFile/extVersionedFile.py 2010/03/31 17:07:43 1.35 +++ versionedFile/extVersionedFile.py 2011/12/05 07:42:38 1.38 @@ -427,8 +427,9 @@ class extVersionedFileFolder(Folder,ECHO return cmp(x[1].title.lower(),y[1].title.lower()) 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): try: xc=getattr(x[1],'comment','ZZZZZZZZZZZZZ').lower() @@ -445,19 +446,26 @@ class extVersionedFileFolder(Folder,ECHO xc=x[1].getContentObject().getVComment().lower() except: xc='ZZZZZZZZZZZZZ'.lower() + if (yc=='') or (yc=='ZZZZZZZZZZZZZ'.lower()): try: yc=y[1].getContentObject().getVComment().lower() except: yc='ZZZZZZZZZZZZZ'.lower() + return cmp(xc,yc) 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) logging.debug("versionedfiles: %s of type %s"%(repr(versionedFiles),repr(self.file_meta_type))) @@ -467,9 +475,12 @@ class extVersionedFileFolder(Folder,ECHO versionedFiles.sort(sortDate) elif sortField=='author': versionedFiles.sort(sortAuthor) + elif sortField=='versioncomment': + versionedFiles.sort(sortVersionComment) elif sortField=='comment': versionedFiles.sort(sortComment) + return versionedFiles @@ -745,7 +756,7 @@ class extVersionedFileObject(ExtFile): """download and lock""" if repr(self.REQUEST['AUTHENTICATED_USER'])=='Anonymous User': 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 self.aq_parent.lockedBy=self.REQUEST['AUTHENTICATED_USER'] @@ -758,9 +769,7 @@ class extVersionedFileObject(ExtFile): return self.versionNumber security.declarePublic('getVersionComment') - def getVersionComment(self): - """get version""" - return self.versionComment + security.declarePublic('lastEditor') def lastEditor(self): @@ -966,28 +975,28 @@ class extVersionedFile(CatalogAware,Fold security.declarePublic('getLastVersion') def getLastVersion(self): """Last Version (old)""" - tmp=0 - lv=None - - for v in self.objectValues(self.content_meta_type): - #logging.debug("getlastversion: check %s"%v.getId()) - if v.getVersionNumber() > tmp: - tmp=v.getVersionNumber() - lv=v - - #ogging.debug("getlastversion: got %s"%lv.getId()) - return lv - +# tmp=0 +# lv=None +# +# for v in self.objectValues(self.content_meta_type): +# #logging.debug("getlastversion: check %s"%v.getId()) +# if v.getVersionNumber() > tmp: +# tmp=v.getVersionNumber() +# lv=v +# +# #ogging.debug("getlastversion: got %s"%lv.getId()) +# return lv + return self.getContentObject(); + def getContentObject(self): """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 lv = self.findLastVersion() if lv is None: return None self.lastVersionNumber = lv.getVersionNumber() self.lastVersionId = lv.getId() - return getattr(self, self.lastVersionId, None) security.declarePublic('getData') @@ -1048,11 +1057,15 @@ class extVersionedFile(CatalogAware,Fold """get version with number nr""" tmp=0 lastVersion=None + logging.debug(self.absolute_url()) for version in self.ZopeFind(self): + logging.debug("getVersionNr :"+repr(version)) + logging.debug("nr:"+str(nr)) if hasattr(version[1],'versionNumber'): + logging.debug("vn:"+repr(version[1].versionNumber)) if int(version[1].versionNumber) ==nr : return version[1] - + logging.debug("nothing") return None security.declarePublic('getVersion') @@ -1197,7 +1210,7 @@ class extVersionedFile(CatalogAware,Fold if str(self.REQUEST['AUTHENTICATED_USER']) in ["Anonymous User"]: 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"]) if ext: return ext[0][1]('',globals(),version=self.getVersion(),lastComment=self.getContentObject().getVersionComment(),AUTHENTICATED_USER=self.REQUEST.AUTHENTICATED_USER) @@ -1269,7 +1282,7 @@ class extVersionedFile(CatalogAware,Fold if repr(self.REQUEST['AUTHENTICATED_USER'])=='Anonymous User': 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 self.lockedBy=self.REQUEST['AUTHENTICATED_USER'] self.getContentObject().content_type="application/octet-stream"