version 1.5, 2006/04/03 18:19:45
|
version 1.6, 2006/04/05 16:54:59
|
Line 8 import cgi
|
Line 8 import cgi
|
|
|
from OFS.OrderedFolder import OrderedFolder |
from OFS.OrderedFolder import OrderedFolder |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
|
from OFS.Image import File |
|
|
from AccessControl import ClassSecurityInfo |
from AccessControl import ClassSecurityInfo |
from AccessControl.User import UserFolder |
from AccessControl.User import UserFolder |
Line 26 from groups import manage_addGroupFolder
|
Line 27 from groups import manage_addGroupFolder
|
|
|
refBasis="http://vlp.mpiwg-berlin.mpg.de/references?id=%s" |
refBasis="http://vlp.mpiwg-berlin.mpg.de/references?id=%s" |
|
|
basketMetatypes=['BasketXRef','BasketInternalLink','BasketExternalLink','BasketText'] |
basketMetatypes=['BasketXRef','BasketInternalLink','BasketExternalLink','BasketText','BasketFile'] |
|
|
#basis url for references |
#basis url for references |
|
|
Line 46 class BasketBasis(OrderedFolder):
|
Line 47 class BasketBasis(OrderedFolder):
|
|
|
return last |
return last |
|
|
|
def addBasketFile(self,REQUEST=None,fileUpload=None,comment=None,title=""): |
|
"""add a file to the basket""" |
|
if fileUpload==None: |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasketFile.zpt')).__of__(self) |
|
pt.content_type="text/html" |
|
return pt() |
|
else: |
|
id=self.getNewId() |
|
if title=="": |
|
title=fileUpload.filename |
|
|
|
manage_addBasketFile(self,id,title,comment,fileUpload) |
|
if REQUEST: |
|
REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket") |
|
|
def addBasketText(self,REQUEST=None): |
def addBasketText(self,REQUEST=None): |
"""add a text""" |
"""add a text""" |
id=self.getNewId() |
id=self.getNewId() |
Line 126 class BasketFolder(BasketBasis):
|
Line 142 class BasketFolder(BasketBasis):
|
ret=[] |
ret=[] |
|
|
if mode=='open': |
if mode=='open': |
|
|
for object in self.getObjects(): |
for object in self.getObjects(): |
|
|
if object.publicationStatus=='open': |
if object.publicationStatus=='open': |
Line 491 class BasketBasis(SimpleItem):
|
Line 506 class BasketBasis(SimpleItem):
|
pt.content_type="text/html" |
pt.content_type="text/html" |
return pt() |
return pt() |
|
|
|
class BasketFile(BasketBasis,File): |
|
"""class for fileupload""" |
|
meta_type="BasketFile" |
|
|
|
def __init__(self,id,title,comment,content_type='',precondition=''): |
|
"""init""" |
|
self.id=id |
|
self.title=title |
|
self.comment=comment |
|
self.content_type=content_type |
|
self.precondition=precondition |
|
|
|
|
|
def download(self): |
|
"""download the file""" |
|
self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename=%s"""%self.title) |
|
self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") |
|
|
|
self.content_type="application/octet-stream" |
|
self.REQUEST.RESPONSE.write(self.data) |
|
|
|
|
|
def upDateFile(self,fileUpload=None,comment=None,title="",REQUEST=None): |
|
"""update file""" |
|
if fileUpload==None: |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','upDateBasketFile.zpt')).__of__(self) |
|
pt.content_type="text/html" |
|
return pt() |
|
else: |
|
id=self.getNewId() |
|
if title=="": |
|
title=fileUpload.filename |
|
|
|
if fileUpload: |
|
self.manage_upload(fileUpload) |
|
|
|
if comment: |
|
self.comment=comment |
|
|
|
if REQUEST: |
|
REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket") |
|
|
|
def content_html(self): |
|
"""format object as html fragment""" |
|
|
|
|
|
return BasketBasis.content_html(self,"BasketFile") |
|
|
|
def manage_addBasketFile(self,id,title,comment,fileUpload,content_type='',precondition='',REQUEST=None): |
|
"""add a basket file""" |
|
|
|
id=str(id) |
|
title=str(title) |
|
content_type=str(content_type) |
|
precondition=str(precondition) |
|
|
|
#id, title = cookId(id, title, file) |
|
|
|
self=self.this() |
|
|
|
# First, we create the file without data: |
|
self._setObject(id, BasketFile(id,title,comment,content_type, precondition)) |
|
|
|
# Now we "upload" the data. By doing this in two steps, we |
|
# can use a database trick to make the upload more efficient. |
|
if fileUpload: |
|
self._getOb(id).manage_upload(fileUpload) |
|
if content_type: |
|
self._getOb(id).content_type=content_type |
|
|
|
if REQUEST is not None: |
|
REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main') |
|
|
class BasketXRef(BasketBasis): |
class BasketXRef(BasketBasis): |
"""class for internal references based on xrefs""" |
"""class for internal references based on xrefs""" |
|
|