version 1.2, 2005/11/28 12:31:56
|
version 1.3, 2005/12/08 17:11:31
|
Line 5 from tempfile import mkstemp,mkdtemp
|
Line 5 from tempfile import mkstemp,mkdtemp
|
import os.path |
import os.path |
import os |
import os |
from types import * |
from types import * |
|
import urlparse |
|
|
class Basket(Folder): |
class Basket(Folder): |
"""shopping basket""" |
"""shopping basket""" |
Line 12 class Basket(Folder):
|
Line 13 class Basket(Folder):
|
meta_type="Basket" |
meta_type="Basket" |
_v_stack={} |
_v_stack={} |
|
|
|
def getObjUrl(self,objId): |
|
"""getUrl""" |
|
founds=self.CDLICatalog.search({'path':objId}) |
|
if len(founds)>0: |
|
return founds[0].getObject().absolute_url() |
|
|
|
else: #assume version |
|
splitted=objId.split("_") |
|
founds=self.CDLICatalog.search({'path':splitted[1]}) |
|
return founds[0].getObject().absolute_url()+'/'+objId |
|
|
def storeAllLink(self,results): |
def storeAllLink(self,results): |
"""erzeuge link zum speicher aller results""" |
"""erzeuge link zum speicher aller results""" |
nr=self.REQUEST['_ZopeId'] |
nr=self.REQUEST['_ZopeId'] |
Line 225 def manage_addBasketObject(self,id,title
|
Line 237 def manage_addBasketObject(self,id,title
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
|
class CDLIFile(versionedFile,CatalogAware): |
|
"""CDLI file""" |
|
|
|
meta_type="CDLI file" |
|
default_catalog='CDLICatalog' |
|
|
|
|
|
|
|
def manage_addCDLIFileForm(self): |
|
"""interface for adding the OSAS_root""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addCDLIFile.zpt')).__of__(self) |
|
return pt() |
|
|
|
def manage_addCDLIFile(self,id,title,lockedBy, author=None, RESPONSE=None): |
|
"""add the OSAS_root""" |
|
newObj=CDLIFile(id,title,lockedBy,author) |
|
self._setObject(id,newObj) |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
class CDLIFileObject(versionedFileObject): |
class CDLIFileObject(versionedFileObject): |
"""CDLI file object""" |
"""CDLI file object""" |
|
|
meta_type="CDLI File Object" |
meta_type="CDLI File Object" |
|
|
|
|
def view(self): |
def view(self): |
"""view file""" |
"""view file""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','viewCDLIFile.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','viewCDLIFile.zpt')).__of__(self) |
Line 292 def manage_addCDLIFileObject(self,id,vC=
|
Line 282 def manage_addCDLIFileObject(self,id,vC=
|
if REQUEST is not None: |
if REQUEST is not None: |
REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main') |
REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main') |
|
|
|
class CDLIFile(versionedFile,CatalogAware): |
|
"""CDLI file""" |
|
|
|
meta_type="CDLI file" |
|
default_catalog='CDLICatalog' |
|
|
|
def manage_addCDLIFileObject(self,id,vC,author,file='',title='',precondition='', content_type='',changeName='no',newName='', RESPONSE=None): |
|
"""add""" |
|
try: #TODO: der ganze vC unsinn muss ueberarbeitet werden |
|
vC=self.REQUEST['vC'] |
|
except: |
|
pass |
|
|
|
author=self.REQUEST['author'] |
|
|
|
if changeName=="yes": |
|
filename=file.filename |
|
self.title=filename[max(filename.rfind('/'), |
|
filename.rfind('\\'), |
|
filename.rfind(':'), |
|
)+1:] |
|
|
|
|
|
if not newName=='': |
|
self.title=newName[0:] |
|
|
|
|
|
|
|
|
|
|
|
positionVersionNum=getattr(self,'positionVersionNum','front') |
|
|
|
if positionVersionNum=='front': |
|
id="V%i"%self.getVersion()+"_"+self.title |
|
else: |
|
tmp=os.path.splitext(self.title) |
|
if len(tmp)>1: |
|
id=tmp[0]+"_V%i"%self.getVersion()+tmp[1] |
|
else: |
|
id=tmp[0]+"_V%i"%self.getVersion() |
|
|
|
|
|
manage_addCDLIFileObject(self,id,vC,author,file,id,precondition, content_type) |
|
objs=self.ZopeFind(self,obj_ids=[id])[0][1].setVersionNumber(int(self.getVersion())) |
|
self.REQUEST.SESSION['objID_parent']=self.getId() |
|
|
|
if RESPONSE: |
|
obj=self.ZopeFind(self,obj_ids=[id])[0][1] |
|
if obj.getSize()==0: |
|
self.REQUEST.SESSION['objID']=obj.getId() |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','errorUploadFile')).__of__(self) |
|
return pt() |
|
|
|
else: |
|
RESPONSE.redirect(self.REQUEST['URL2']) |
|
|
|
else: |
|
return self.ZopeFind(self,obj_ids=[id])[0][1] |
|
|
|
|
|
def manage_addCDLIFileForm(self): |
|
"""interface for adding the OSAS_root""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addCDLIFile.zpt')).__of__(self) |
|
return pt() |
|
|
|
def manage_addCDLIFile(self,id,title,lockedBy, author=None, RESPONSE=None): |
|
"""add the OSAS_root""" |
|
newObj=CDLIFile(id,title,lockedBy,author) |
|
self._setObject(id,newObj) |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
|
|
def splitatf(fh,dir=None): |
def splitatf(fh,dir=None): |
"""split it""" |
"""split it""" |
Line 322 class CDLIFileFolder(versionedFileFolder
|
Line 387 class CDLIFileFolder(versionedFileFolder
|
folderMetaType=['CDLI Folder'] |
folderMetaType=['CDLI Folder'] |
default_catalog='CDLICatalog' |
default_catalog='CDLICatalog' |
|
|
def uploadATF(self,upload,comment="",RESPONSE=None): |
def uploadATF(self,upload,RESPONSE=None): |
"""upload an atf file""" |
"""upload an atf file""" |
|
#TODO: add comments |
#TODO: finish uploadATF |
#TODO: finish uploadATF |
dir=mkdtemp() |
dir=mkdtemp() |
changed=[] |
changed=[] |
errors=[] |
errors=[] |
|
newPs=[] |
splitatf(upload,dir) |
splitatf(upload,dir) |
|
|
for fn in os.listdir(dir): |
for fn in os.listdir(dir): |
founds=self.CDLICatalog.search({'path':fn}) |
founds=self.CDLICatalog.search({'path':fn}) |
|
if len(founds)==0: |
|
newPs.append(fn) |
|
|
for found in founds: |
for found in founds: |
obj=found.getObject() |
obj=found.getObject() |
Line 345 class CDLIFileFolder(versionedFileFolder
|
Line 414 class CDLIFileFolder(versionedFileFolder
|
changed.append((obj,diffs)) |
changed.append((obj,diffs)) |
#hochladen |
#hochladen |
|
|
|
self.REQUEST.SESSION['changed']=[x[0].getId() for x in changed] |
|
self.REQUEST.SESSION['errors']=[x.getId() for x in errors] |
|
self.REQUEST.SESSION['newPs']=newPs |
|
self.REQUEST.SESSION['tmpdir']=dir |
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadCheck.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadCheck.zpt')).__of__(self) |
return pt(changed=changed,errors=errors,dir=dir) |
return pt(changed=changed,errors=errors,dir=dir,newPs=newPs) |
|
|
|
def uploadATFfinally(self,procedure,comment="",unlock=None,RESPONSE=None): |
|
"""upload the files""" |
|
|
|
if procedure=="uploadchanged": |
|
uploadFns=self.REQUEST.SESSION['changed']+self.REQUEST.SESSION['newPs'] |
|
|
|
elif procedure=="uploadAll": |
|
uploadFns=[] |
|
for x in os.listdir(self.REQUEST.SESSION['tmpdir']): |
|
if not x in self.REQUEST.SESSION['errors']: |
|
uploadFns.append(x) |
|
else: |
|
uploadFns=[] |
|
|
|
for fn in uploadFns: |
|
founds=self.CDLICatalog.search({'path':fn}) |
|
if len(founds)>0: |
|
self.REQUEST['author']=str(self.REQUEST['AUTHENTICATED_USER']) |
|
founds[0].getObject().manage_addCDLIFileObject('',comment,self.REQUEST['author'],file=file(os.path.join(self.REQUEST.SESSION['tmpdir'],fn))) |
|
|
|
|
|
|
|
newPs=self.REQUEST.SESSION['newPs'] |
|
if len(newPs)>0: |
|
tmpDir=self.REQUEST.SESSION['tmpdir'] |
|
|
|
self.cdli_main.importFiles(comment=comment,author=str(self.REQUEST['AUTHENTICATED_USER']) ,folderName=tmpDir, files=newPs) |
|
|
|
|
|
|
|
#unlock |
|
if unlock: |
|
unlockFns=[] |
|
for x in os.listdir(self.REQUEST.SESSION['tmpdir']): |
|
if not x in self.REQUEST.SESSION['errors']: |
|
unlockFns.append(x) |
|
|
|
for fn in unlockFns: |
|
founds=self.CDLICatalog.search({'path':fn}) |
|
if len(founds)>0: |
|
self.REQUEST['author']=str(self.REQUEST['AUTHENTICATED_USER']) |
|
|
|
founds[0].getObject().lockedBy="" |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect(self.aq_parent.absolute_url()) |
|
|
|
|
def findObjectsFromList(self,upload,RESPONSE): |
def findObjectsFromList(self,upload,RESPONSE): |
Line 442 class CDLIFileFolder(versionedFileFolder
|
Line 561 class CDLIFileFolder(versionedFileFolder
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','CDLIFileFolderMain')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','CDLIFileFolderMain')).__of__(self) |
return pt() |
return pt() |
|
|
def importFiles(self,comment="",author="" ): |
def importFiles(self,comment="",author="" ,folderName="/Users/dwinter/Documents/workspace/cdli/atf", files=None): |
"""import files""" |
"""import files""" |
folderName="/Users/dwinter/Documents/workspace/cdli/atf" |
|
|
|
|
if not files: |
files=os.listdir(folderName) |
files=os.listdir(folderName) |
|
|
for f in files: |
for f in files: |
folder=f[0:3] |
folder=f[0:3] |
f2=f[0:5] |
f2=f[0:5] |
Line 468 class CDLIFileFolder(versionedFileFolder
|
Line 588 class CDLIFileFolder(versionedFileFolder
|
else: |
else: |
fobj2=obj2[0][1] |
fobj2=obj2[0][1] |
|
|
print f |
|
file2=file(os.path.join(folderName,f)) |
file2=file(os.path.join(folderName,f)) |
id=f |
id=f |
manage_addCDLIFile(fobj2,f,'','') |
manage_addCDLIFile(fobj2,f,'','') |
Line 477 class CDLIFileFolder(versionedFileFolder
|
Line 596 class CDLIFileFolder(versionedFileFolder
|
ob.title=id |
ob.title=id |
|
|
manage_addCDLIFileObject(ob,id,comment,author,file2,content_type='') |
manage_addCDLIFileObject(ob,id,comment,author,file2,content_type='') |
|
self.CDLICatalog.catalog_object(ob) |
|
#self.CDLICatalog.manage_catalogFoundItems(obj_ids=[id],search_sub=1) |
|
#self.CDLICatalog.manage_catalogObject(self.REQUEST, self.REQUEST.RESPONSE, 'CDLICatalog', urlparse.urlparse(ob.absolute_url())[1]) |
|
|
return "ok" |
return "ok" |
|
|
manage_addCDLIFileFolderForm=DTMLFile('dtml/folderAdd', globals()) |
manage_addCDLIFileFolderForm=DTMLFile('dtml/folderAdd', globals()) |
|
|
|
|