version 1.59, 2007/01/24 18:08:15
|
version 1.60, 2007/01/30 00:58:26
|
Line 136 class uploadATFfinallyThread(Thread):
|
Line 136 class uploadATFfinallyThread(Thread):
|
self.username=username |
self.username=username |
self.serverport=serverport |
self.serverport=serverport |
|
|
|
|
def __call__(self): |
def __call__(self): |
"""call of the thread (equals run)""" |
"""call of the thread (equals run)""" |
self.run() |
self.run() |
Line 264 class uploadATFfinallyThread(Thread):
|
Line 265 class uploadATFfinallyThread(Thread):
|
|
|
return True |
return True |
|
|
|
class tmpStore(SimpleItem): |
|
"""simple item""" |
|
meta_type="cdli_upload" |
|
|
|
def __init__(self,id): |
|
"""init tmp""" |
|
self.id=id |
|
|
class uploadATFThread(Thread): |
class uploadATFThread(Thread): |
"""class for checking the files befor uploading""" |
"""class for checking the files befor uploading""" |
|
|
Line 276 class uploadATFThread(Thread):
|
Line 285 class uploadATFThread(Thread):
|
Thread.__init__(self) |
Thread.__init__(self) |
|
|
|
|
def set(self,upload,basketId,username,serverport="8080"): |
def set(self,upload,basketId,username,idTmp,serverport="8080"): |
"""set start values for the thread""" |
"""set start values for the thread""" |
self.result="" |
self.result="" |
self.upload=upload |
self.upload=upload |
self.basketId=basketId |
self.basketId=basketId |
self.username=username |
self.username=username |
self.serverport=serverport |
self.serverport=serverport |
|
self.idTmp=idTmp |
|
|
def __call__(self): |
def __call__(self): |
"""call method """ |
"""call method """ |
Line 301 class uploadATFThread(Thread):
|
Line 311 class uploadATFThread(Thread):
|
return app.__of__(RequestContainer(REQUEST = req)) |
return app.__of__(RequestContainer(REQUEST = req)) |
|
|
def run(self): |
def run(self): |
|
idTmp=self.idTmp |
self.result="" |
self.result="" |
#find context within ZODB |
#find context within ZODB |
from Zope import DB |
from Zope import DB |
Line 309 class uploadATFThread(Thread):
|
Line 319 class uploadATFThread(Thread):
|
root = conn.root() |
root = conn.root() |
app = root['Application'] |
app = root['Application'] |
ctx = self.getContext(app,serverport=self.serverport) |
ctx = self.getContext(app,serverport=self.serverport) |
self.uploadATFThread(ctx,self.upload,self.basketId) |
logging.info("run intern") |
|
ctx.temp_folder._setObject(idTmp,tmpStore(idTmp)) |
|
logging.info("call thread intern") |
|
self.uploadATFThread(ctx,self.upload,idTmp,self.basketId) |
|
|
#ctx.cdliRoot.cdli_main.tmpStore2[self.getName()[0:]]=self.returnValue |
#ctx.cdliRoot.cdli_main.tmpStore2[self.getName()[0:]]=self.returnValue |
|
|
|
|
transaction.get().commit() |
transaction.get().commit() |
while self.continueVar: |
|
pass |
|
|
|
conn.close() |
conn.close() |
|
|
Line 325 class uploadATFThread(Thread):
|
Line 336 class uploadATFThread(Thread):
|
"""method for accessing result""" |
"""method for accessing result""" |
return self.result |
return self.result |
|
|
def uploadATFThread(self,ctx,upload,basketId=0): |
def uploadATFThread(self,ctx,upload,idTmp,basketId=0): |
"""upload an atf file""" |
"""upload an atf file""" |
#TODO: add comments |
#TODO: add comments |
#TODO: finish uploadATF |
#TODO: finish uploadATF |
|
|
|
stObj=getattr(ctx.temp_folder,idTmp) |
|
logging.info("start, upload thread") |
self.result="<html><body><h2>I got your file, start now to split it into single atf-files!</h2><p>" |
self.result="<html><body><h2>I got your file, start now to split it into single atf-files!</h2><p>" |
|
|
#make sure that id is a string and not an integer |
#make sure that id is a string and not an integer |
Line 367 class uploadATFThread(Thread):
|
Line 381 class uploadATFThread(Thread):
|
basketNameFromId=getattr(ctx2.basketContainer,basketId).title |
basketNameFromId=getattr(ctx2.basketContainer,basketId).title |
basketLen=getattr(ctx2.basketContainer,basketId).getLastVersion().numberOfItems() |
basketLen=getattr(ctx2.basketContainer,basketId).getLastVersion().numberOfItems() |
|
|
|
logging.info("got the file, upload thread") |
self.result+="""<html><body><h2>I got the files</h2>< |
self.result+="""<html><body><h2>I got the files</h2>< |
p>I am computing the differences to the exisiting files</p>""" |
p>I am computing the differences to the exisiting files</p>""" |
|
|
Line 412 class uploadATFThread(Thread):
|
Line 426 class uploadATFThread(Thread):
|
#ready, set the returnValues |
#ready, set the returnValues |
self.result+="<h3>Done</h3></body></html>" |
self.result+="<h3>Done</h3></body></html>" |
|
|
self.returnValue={} |
stObj.returnValue={} |
self.returnValue['changed']=changed |
|
self.returnValue['errors']=errors |
stObj.returnValue['errors']=errors |
self.returnValue['lockerrors']=lockerrors |
|
self.returnValue['newPs']=newPs |
|
self.returnValue['tmpdir']=dir |
|
self.returnValue['basketLen']=basketLen |
|
self.returnValue['numberOfFiles']=numberOfFiles |
|
self.returnValue['basketNameFromId']=basketNameFromId |
|
self.returnValue['basketNameFromFile']=basketNameFromFile |
|
self.returnValue['basketId']=basketId |
|
self.returnValue['dir']=dir |
|
|
|
|
stObj.returnValue['newPs']=newPs |
|
stObj.returnValue['tmpdir']=dir |
|
stObj.returnValue['basketLen']=basketLen |
|
stObj.returnValue['numberOfFiles']=numberOfFiles |
|
stObj.returnValue['basketNameFromId']=basketNameFromId |
|
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] |
|
self.returnValue=True |
#ctx2.cdli_main.setTemp('v_uploadATF_returnValue',True) |
#ctx2.cdli_main.setTemp('v_uploadATF_returnValue',True) |
|
|
|
|
Line 2193 class CDLIRoot(Folder):
|
Line 2210 class CDLIRoot(Folder):
|
def uploadATF(self,repeat=None,upload=None,basketId=0,RESPONSE=None): |
def uploadATF(self,repeat=None,upload=None,basketId=0,RESPONSE=None): |
"""standard ausgabe""" |
"""standard ausgabe""" |
#self._v_uploadATF.returnValue=None |
#self._v_uploadATF.returnValue=None |
|
from random import randint |
|
if not self.REQUEST.SESSION.get('idTmp',None): |
|
|
|
idTmp=str(randint(0,1000000000)) |
|
self.REQUEST.SESSION['idTmp']=idTmp |
|
else: |
|
idTmp=self.REQUEST.SESSION.get('idTmp',None) |
|
|
threadName=repeat |
threadName=repeat |
if not threadName or threadName=="": |
if not threadName or threadName=="": |
Line 2206 class CDLIRoot(Folder):
|
Line 2230 class CDLIRoot(Folder):
|
self._v_uploadATF[threadName]=thread |
self._v_uploadATF[threadName]=thread |
#self._xmltrans.start() |
#self._xmltrans.start() |
#thread=Thread(target=self._v_uploadATF) |
#thread=Thread(target=self._v_uploadATF) |
|
logging.info("set thread. extern") |
self._v_uploadATF[threadName].set(upload,basketId,self.REQUEST['AUTHENTICATED_USER'],serverport=self.REQUEST['SERVER_PORT']) |
self._v_uploadATF[threadName].set(upload,basketId,self.REQUEST['AUTHENTICATED_USER'],idTmp,serverport=self.REQUEST['SERVER_PORT']) |
#thread.start() |
#thread.start() |
|
logging.info("start thread. extern") |
self._v_uploadATF[threadName].start() |
self._v_uploadATF[threadName].start() |
|
|
|
|
Line 2230 class CDLIRoot(Folder):
|
Line 2255 class CDLIRoot(Folder):
|
if threadName == thread.getName(): |
if threadName == thread.getName(): |
self._v_uploadATF[threadName]=thread |
self._v_uploadATF[threadName]=thread |
|
|
if not self._v_uploadATF[threadName].returnValue: |
if self._v_uploadATF.get(threadName,None) and (not self._v_uploadATF[threadName].returnValue): |
|
|
|
|
wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template']) |
wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['wait_template']) |
Line 2253 class CDLIRoot(Folder):
|
Line 2278 class CDLIRoot(Folder):
|
# |
# |
# # |
# # |
#tmp=self.cdli_main.tmpStore2[threadName] |
#tmp=self.cdli_main.tmpStore2[threadName] |
tmp=self._v_uploadATF[threadName].returnValue |
|
|
|
self._v_uploadATF[threadName].continueVar=False |
tmp=getattr(self.temp_folder,idTmp).returnValue |
|
|
|
|
|
|
|
|
self.REQUEST.SESSION['changed']=[x[0].getId() for x in tmp['changed']] |
|
self.REQUEST.SESSION['lockerrors']=[x[0].getId() for x in tmp['lockerrors']] |
|
self.REQUEST.SESSION['errors']=tmp['errors'] |
|
self.REQUEST.SESSION['newPs']=tmp['newPs'] |
|
self.REQUEST.SESSION['tmpdir']=tmp['dir'] |
|
#del(self.cdli_main.tmpStore2[threadName]) |
#del(self.cdli_main.tmpStore2[threadName]) |
|
|
|
|
Line 2293 class CDLIRoot(Folder):
|
Line 2315 class CDLIRoot(Folder):
|
|
|
self._v_uploadATF[threadName]=thread |
self._v_uploadATF[threadName]=thread |
|
|
|
idTmp=self.REQUEST.SESSION['idTmp'] |
self._v_uploadATF[threadName].set(procedure,comment=comment,basketname=basketname,unlock=unlock,SESSION=self.REQUEST.SESSION,username=self.REQUEST['AUTHENTICATED_USER'],serverport=self.REQUEST['SERVER_PORT']) |
stObj=getattr(self.temp_folder,idTmp) |
|
self._v_uploadATF[threadName].set(procedure,comment=comment,basketname=basketname,unlock=unlock,SESSION=stObj.returnValue,username=self.REQUEST['AUTHENTICATED_USER'],serverport=self.REQUEST['SERVER_PORT']) |
|
|
self._v_uploadATF[threadName].start() |
self._v_uploadATF[threadName].start() |
|
|
Line 2327 class CDLIRoot(Folder):
|
Line 2350 class CDLIRoot(Folder):
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadATFWait.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadATFWait.zpt')).__of__(self) |
return pt(txt='/uploadATFfinally',threadName=threadName) |
return pt(txt='/uploadATFfinally',threadName=threadName) |
else: |
else: |
|
self.REQUEST.SESSION['idTmp']=None |
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect(self.absolute_url()) |
RESPONSE.redirect(self.absolute_url()) |
|
|