version 1.60, 2007/01/30 00:58:26
|
version 1.62, 2007/02/02 14:31:49
|
Line 24 import threading
|
Line 24 import threading
|
from BTrees.OOBTree import OOBTree |
from BTrees.OOBTree import OOBTree |
import logging |
import logging |
import transaction |
import transaction |
|
import copy |
|
|
def unique(s): |
def unique(s): |
"""Return a list of the elements in s, but without duplicates. |
"""Return a list of the elements in s, but without duplicates. |
Line 173 class uploadATFfinallyThread(Thread):
|
Line 174 class uploadATFfinallyThread(Thread):
|
conn.close() |
conn.close() |
#set flag for end of this method |
#set flag for end of this method |
self.end=True |
self.end=True |
print "ended" |
logging.info("ended") |
return True |
return True |
|
|
def __del__(self): |
def __del__(self): |
Line 195 class uploadATFfinallyThread(Thread):
|
Line 196 class uploadATFfinallyThread(Thread):
|
|
|
#shall I only upload the changed files? |
#shall I only upload the changed files? |
if procedure=="uploadchanged": |
if procedure=="uploadchanged": |
|
changed=[x[0] for x in SESSION.get('changed',[])] |
uploadFns=SESSION.get('changed',[])+SESSION.get('newPs',[]) |
uploadFns=changed+SESSION.get('newPs',[]) |
|
|
#or all |
#or all |
elif procedure=="uploadAll": |
elif procedure=="uploadAll": |
Line 212 class uploadATFfinallyThread(Thread):
|
Line 213 class uploadATFfinallyThread(Thread):
|
uploadFns=[] |
uploadFns=[] |
|
|
#do first the changed files |
#do first the changed files |
|
i=0 |
for fn in uploadFns: |
for fn in uploadFns: |
|
i+=1 |
founds=ctx2.CDLICatalog.search({'title':fn}) |
founds=ctx2.CDLICatalog.search({'title':fn}) |
if len(founds)>0: |
if len(founds)>0: |
SESSION['author']=str(username) |
SESSION['author']=str(username) |
self.result+="<p>Changing : %s"%fn |
self.result+="<p>Changing : %s"%fn |
founds[0].getObject().manage_addCDLIFileObject('',comment,SESSION['author'],file=os.path.join(SESSION['tmpdir'],fn),from_tmp=True) |
founds[0].getObject().manage_addCDLIFileObject('',comment,SESSION['author'],file=os.path.join(SESSION['tmpdir'],fn),from_tmp=True) |
|
if i==200: |
|
i=0 |
|
transaction.get().commit() |
|
logging.info("changing: do commit") |
|
transaction.get().commit() |
|
logging.info("changing: last commit") |
|
|
#now add the new files |
#now add the new files |
newPs=SESSION['newPs'] |
newPs=SESSION['newPs'] |
Line 438 class uploadATFThread(Thread):
|
Line 446 class uploadATFThread(Thread):
|
stObj.returnValue['basketNameFromFile']=basketNameFromFile |
stObj.returnValue['basketNameFromFile']=basketNameFromFile |
stObj.returnValue['basketId']=basketId |
stObj.returnValue['basketId']=basketId |
stObj.returnValue['dir']=dir |
stObj.returnValue['dir']=dir |
|
#stObj.returnValue['changed']=copy.copy(changed) |
stObj.returnValue['changed']=[x[0].getId() for x in changed] |
stObj.returnValue['changed']=[(x[0].getId(),x[1][0]) for x in changed] |
stObj.returnValue['lockerrors']=[x[0].getId() for x in lockerrors] |
#stObj.returnValue['lockerrors']=[x[0].getId() for x in lockerrors] |
|
print lockerrors |
|
stObj.returnValue['lockerrors']=[x for x in lockerrors] |
self.returnValue=True |
self.returnValue=True |
#ctx2.cdli_main.setTemp('v_uploadATF_returnValue',True) |
#ctx2.cdli_main.setTemp('v_uploadATF_returnValue',True) |
|
|
Line 608 class BasketObject_old(Folder):
|
Line 618 class BasketObject_old(Folder):
|
"""unlock all files of the testuser for debuggin""" |
"""unlock all files of the testuser for debuggin""" |
for object in self.contents: |
for object in self.contents: |
|
|
if str(object.lockedBy)=="test": |
if str(object.lockedBy)=="dahl": |
object.lockedBy="" |
object.lockedBy="" |
|
|
def downloadObjectsAsOneFile(self,lock=None,procedure=None,REQUEST=None): |
def downloadObjectsAsOneFile(self,lock=None,procedure=None,REQUEST=None): |
Line 1694 def splitatf(fh,dir=None,ext=None):
|
Line 1704 def splitatf(fh,dir=None,ext=None):
|
if dir: |
if dir: |
filename=os.path.join(dir,filename) |
filename=os.path.join(dir,filename) |
nf=file(filename,"w") |
nf=file(filename,"w") |
|
logging.info("open %s"%filename) |
if nf: |
if nf: |
nf.write(line.replace("\n","")+"\n") |
nf.write(line.replace("\n","")+"\n") |
|
|
|
try: |
nf.close() |
nf.close() |
|
except: |
|
pass |
fh.close() |
fh.close() |
return ret,len(os.listdir(dir)) |
return ret,len(os.listdir(dir)) |
|
|
Line 2145 class CDLIRoot(Folder):
|
Line 2159 class CDLIRoot(Folder):
|
|
|
return ret |
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): |
def getChangesByAuthor(self,author,n=100): |
"""getChangesByAuthor""" |
"""getChangesByAuthor""" |
zcat=self.CDLIObjectsCatalog |
zcat=self.CDLIObjectsCatalog |
Line 2211 class CDLIRoot(Folder):
|
Line 2237 class CDLIRoot(Folder):
|
"""standard ausgabe""" |
"""standard ausgabe""" |
#self._v_uploadATF.returnValue=None |
#self._v_uploadATF.returnValue=None |
from random import randint |
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)) |
idTmp=str(randint(0,1000000000)) |
self.REQUEST.SESSION['idTmp']=idTmp |
self.REQUEST.SESSION['idTmp']=idTmp |
Line 2421 def manage_addCDLIRoot(self, id, title='
|
Line 2447 def manage_addCDLIRoot(self, id, title='
|
ob=CDLIRoot() |
ob=CDLIRoot() |
ob.id=str(id) |
ob.id=str(id) |
ob.title=title |
ob.title=title |
|
try: |
self._setObject(id, ob) |
self._setObject(id, ob) |
|
except: |
|
pass |
ob=self._getOb(id) |
ob=self._getOb(id) |
|
|
checkPermission=getSecurityManager().checkPermission |
checkPermission=getSecurityManager().checkPermission |