--- cdli/cdli_files.py 2007/01/30 00:58:26 1.60 +++ cdli/cdli_files.py 2007/01/30 14:26:42 1.61 @@ -24,6 +24,7 @@ import threading from BTrees.OOBTree import OOBTree import logging import transaction +import copy def unique(s): """Return a list of the elements in s, but without duplicates. @@ -195,8 +196,8 @@ class uploadATFfinallyThread(Thread): #shall I only upload the changed files? if procedure=="uploadchanged": - - uploadFns=SESSION.get('changed',[])+SESSION.get('newPs',[]) + changed=[x[0] for x in SESSION.get('changed',[])] + uploadFns=changed+SESSION.get('newPs',[]) #or all elif procedure=="uploadAll": @@ -326,7 +327,7 @@ class uploadATFThread(Thread): #ctx.cdliRoot.cdli_main.tmpStore2[self.getName()[0:]]=self.returnValue - + transaction.get().commit() conn.close() @@ -438,9 +439,11 @@ class uploadATFThread(Thread): stObj.returnValue['basketNameFromFile']=basketNameFromFile stObj.returnValue['basketId']=basketId stObj.returnValue['dir']=dir - - stObj.returnValue['changed']=[x[0].getId() for x in changed] - stObj.returnValue['lockerrors']=[x[0].getId() for x in lockerrors] + #stObj.returnValue['changed']=copy.copy(changed) + stObj.returnValue['changed']=[(x[0].getId(),x[1][0]) for x in changed] + #stObj.returnValue['lockerrors']=[x[0].getId() for x in lockerrors] + print lockerrors + stObj.returnValue['lockerrors']=[x for x in lockerrors] self.returnValue=True #ctx2.cdli_main.setTemp('v_uploadATF_returnValue',True) @@ -608,7 +611,7 @@ class BasketObject_old(Folder): """unlock all files of the testuser for debuggin""" for object in self.contents: - if str(object.lockedBy)=="test": + if str(object.lockedBy)=="dahl": object.lockedBy="" def downloadObjectsAsOneFile(self,lock=None,procedure=None,REQUEST=None): @@ -1694,10 +1697,14 @@ def splitatf(fh,dir=None,ext=None): if dir: filename=os.path.join(dir,filename) nf=file(filename,"w") + logging.info("open %s"%filename) if nf: nf.write(line.replace("\n","")+"\n") - nf.close() + try: + nf.close() + except: + pass fh.close() return ret,len(os.listdir(dir)) @@ -2143,6 +2150,18 @@ class CDLIRoot(Folder): if un and un !="": ret.append((f[0],un)) + return ret + + def forceDahl(self): + "break all locks" + ret=[] + for f in self.ZopeFind(self,obj_metatypes="CDLI file",search_sub=1): + if str(f[1].lockedBy)=="dahl": + un=f[1].forceunlock() + + if un and un !="": + ret.append((f[0],un)) + return ret def getChangesByAuthor(self,author,n=100): @@ -2211,7 +2230,7 @@ class CDLIRoot(Folder): """standard ausgabe""" #self._v_uploadATF.returnValue=None from random import randint - if not self.REQUEST.SESSION.get('idTmp',None): + if (not self.REQUEST.SESSION.get('idTmp',None)): idTmp=str(randint(0,1000000000)) self.REQUEST.SESSION['idTmp']=idTmp @@ -2421,7 +2440,10 @@ def manage_addCDLIRoot(self, id, title=' ob=CDLIRoot() ob.id=str(id) ob.title=title - self._setObject(id, ob) + try: + self._setObject(id, ob) + except: + pass ob=self._getOb(id) checkPermission=getSecurityManager().checkPermission