--- cdli/cdli_files.py 2008/10/02 11:42:42 1.88 +++ cdli/cdli_files.py 2008/10/07 06:53:57 1.93 @@ -401,7 +401,7 @@ class uploadATFfinallyThread(Thread): basketId=ob.getId() basket=getattr(ctx2.basketContainer,str(basketId)) ids=os.listdir(SESSION['tmpdir']) - logging.debug("should add:"+repr(ids)) + #logging.debug("should add:"+repr(ids)) basket.addObjects(ids,deleteOld=True,username=str(username)) logging.debug("uploadatffinallythread uploadfinally done") @@ -640,7 +640,7 @@ class CDLIBasketContainer(OrderedFolder) ret+=str(object[0].getData())+"\n" elif current=="yes": #search current object - logging.debug("current: %s"%object[1].getId().split(".")[0]) + #logging.debug("current: %s"%object[1].getId().split(".")[0]) founds=self.CDLICatalog.search({'title':object[1].getId().split(".")[0]}) if len(founds)>0: ret+=str(founds[0].getObject().getLastVersion().getData())+"\n" @@ -1032,12 +1032,12 @@ class CDLIBasket(Folder,CatalogAware): def isActual(self,obj): """teste ob im basket die aktuelle version ist""" try: - logging.debug("isActual:"+repr(obj)) + #logging.debug("isActual:"+repr(obj)) actualNo=obj[1].getLastVersion().getVersionNumber() storedNo=obj[0].getVersionNumber() - actualNo=self.getFileObjectLastVersion(obj.getId()).getVersionNumber() + #actualNo=self.getFileObjectLastVersion(obj.getId()).getVersionNumber() #if len(founds)>0 and founds[0].getObject().aq_parent.getId()==".trash": # return False, -1 @@ -1047,6 +1047,8 @@ class CDLIBasket(Folder,CatalogAware): else: return False, actualNo except: + logging.error( """is actual: %s (%s %s)"""%(repr(obj),sys.exc_info()[0],sys.exc_info()[1])) + return False, -1 def history(self): @@ -1222,9 +1224,9 @@ class CDLIBasket(Folder,CatalogAware): hash = md5.new(repr(makelist(ids))).hexdigest() # erzeuge hash als identification #logging.debug("JJJJJJJ:"+repr(self.makelist(ids))) - logging.debug("JJJJJJJ:"+repr(hash)) + - if hasattr(self.cdliRoot,'v_tmpStore') and self.cdliRoot.v_tmpStore.has_key(hash): + if hasattr(self.cdliRoot,'v_tmpStore') and self.cdliRoot.v_tmpStore.has_key("hash"): logging.debug("from store!") newContent=Set(map(swap,self.cdliRoot.v_tmpStore[hash])) @@ -1253,7 +1255,7 @@ class CDLIBasket(Folder,CatalogAware): lv=self.getLastVersion() for obj in lv.content.getContent(): - logging.info("XXXXXXXXXX %s"%repr(obj)) + #logging.info("XXXXXXXXXX %s"%repr(obj)) ret.append((obj[1].getId(),obj[0].versionNumber)) return ret @@ -1362,7 +1364,7 @@ class CDLIBasketVersion(Implicit,Persist security.declareProtected('manage','downloadObjectsAsOneFile') def downloadObjectsAsOneFile(self,lock=None,procedure=None,REQUEST=None,check="yes",current="no"): """download all selected files in one file""" - logging.debug("doasof") + if self.temp_folder.downloadCounterBaskets > 10000: return """I am sorry, currently the server has to many requests for downloads, please come back later!""" @@ -1379,12 +1381,12 @@ class CDLIBasketVersion(Implicit,Persist def downloadObjectsAsOneFileFinally(self,lock=None,procedure=None,REQUEST=None,current="no",repeat=None): """print do the download""" - logging.debug("HIHHHH") + ret="" lockedObjects={} - logging.debug("lock:"+repr(lock)) + if lock: logging.debug("------lock:"+repr(lock)) if str(self.REQUEST['AUTHENTICATED_USER'])=='Anonymous User': @@ -1484,6 +1486,8 @@ class CDLIBasketVersion(Implicit,Persist #files = self._v_downloadBasket[threadName].result files=self.basketContainer.resultHash[threadName] + lockedFiles=self.basketContainer.resultLockedHash[threadName] + # fh=file("/var/tmp/test") #ret =fh.read() @@ -1501,12 +1505,25 @@ class CDLIBasketVersion(Implicit,Persist self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") #length=len(ret) #self.REQUEST.RESPONSE.setHeader("Content-Length",length) + ret="#basket: %s\n"%basket_name - self.REQUEST.RESPONSE.write(ret) + self.REQUEST.RESPONSE.write(ret) + for fileName in files: + try: self.REQUEST.RESPONSE.write(file(fileName).read()) - + except: + logging.error("downloadasonefile: cannot read %s"%fileName) + + + self.REQUEST.RESPONSE.write("\n# locked files\n") + for fileName in lockedFiles: + self.REQUEST.RESPONSE.write("# %s by %s\n"%fileName) + + self.REQUEST.RESPONSE.write("# locked files end\n") + del self.basketContainer.resultHash[threadName] + del self.basketContainer.resultLockedHash[threadName] def numberOfItems(self): """return anzahl der elemente im basket""" @@ -1610,6 +1627,10 @@ class CDLIFileObject(CatalogAware,extVer """Return cataloguable key for ourselves.""" return str(self) + def setAuthor(self, author): + """change the author""" + self.author = author + def makeThisVersionCurrent_html(self): """form for mthis version current""" @@ -2100,7 +2121,7 @@ class CDLIFileFolder(extVersionedFileFol ids = fileTree & self.v_file_ids #self.REQUEST.SESSION['fileIds']=ids#store fieldIds in session for further usage l=makelist(fileTree)[0:] - logging.debug("l-list:"+repr(l)) + #logging.debug("l-list:"+repr(l)) self.REQUEST.SESSION['fileIds']=l#store fieldIds in session for further usage self.REQUEST.SESSION['searchList']=l #self.REQUEST.SESSION['searchList']=['P000001.atf'] @@ -2333,7 +2354,7 @@ class CDLIRoot(Folder): def getFileObjectLastVersion(self,fileId): """get an object""" x=self.v_files_lastVersion.get(fileId) - #logging.debug(x) + l#ogging.debug("lastVersion: "+repr(x)) return x def showFileIds(self):