--- versionedFile/extVersionedFile.py 2008/10/07 06:53:45 1.28 +++ versionedFile/extVersionedFile.py 2009/06/05 07:32:17 1.31 @@ -631,7 +631,11 @@ class extVersionedFileObject(ExtFile): #logging.debug("+++++++getData1:"+repr(self.get_filename())) filename = self.get_filename() #return ExtFile.index_html(self) - return file(filename).read() + try: + return file(filename).read() + except: + return ExtFile.index_html(self) + def getFileName(self): """return filename""" @@ -1014,7 +1018,20 @@ class extVersionedFile(CatalogAware,Fold #return "File: %s Version:%i modified:%s size:%s modified by:%s"%(self.title,lastVersion.versionNumber,lastVersion.getTime(),lastVersion.getSize(),lastVersion.lastEditor()) return self.history() - + def getVersionNr(self,nr): + """get version with number nr""" + tmp=0 + lastVersion=None + + + for version in self.ZopeFind(self): + + if hasattr(version[1],'versionNumber'): + + if int(version[1].versionNumber) ==nr : + return version[1] + + return None security.declarePublic('getVersion') def getVersion(self): # TODO: this is ugly and it returns the next version number @@ -1059,14 +1076,23 @@ class extVersionedFile(CatalogAware,Fold return vl security.declareProtected('AUTHENTICATED_USER','forceunlock') - def forceunlock(self,RESPONSE=None): + def forceunlock(self,RESPONSE=None,user=None): """unlock""" #safe who had the lock + logging.debug("extVersionFile: (forceunlock)"+str(user)) if self.lockedBy: - self.brokenLock=str(self.lockedBy) + if user is not None: + if str(self.lockedBy)==user: + self.brokenLock=str(self.lockedBy) + self.lockedBy='' + else: + self.brokenLock="" + else: + self.brokenLock=str(self.lockedBy) + self.lockedBy='' else: self.brokenLock="" - self.lockedBy='' + return self.brokenLock security.declareProtected('AUTHENTICATED_USER','unlock')