X-Git-Url: https://scm.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/360eff57ab014d00d461fdf1d5df65111e0ce85e..bfc72d6ee287ae6afaed266f48f6522b861c0a68:/AttachmentTool.py diff --git a/AttachmentTool.py b/AttachmentTool.py index 4df5a3f..979148d 100644 --- a/AttachmentTool.py +++ b/AttachmentTool.py @@ -30,6 +30,7 @@ from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder from OFS.Image import File, cookId from zExceptions import Unauthorized +from zExceptions import BadRequest from Products.Photo import Photo from Products.CMFCore.utils import UniqueObject, getToolByName, getUtilityByInterfaceName from Products.CMFCore.permissions import ModifyPortalContent @@ -114,6 +115,16 @@ class AttachmentContainer (Folder): def __init__(self): self.id = 'attachments' + security.declarePrivate('checkIdAvailable') + def checkIdAvailable(self, id): + try: + self._checkId(id) + except BadRequest: + return False + else: + return True + + security.declareProtected(ModifyPortalContent, 'put_upload') def put_upload(self, REQUEST, RESPONSE): """ Upload a content thru webdav put method. @@ -174,7 +185,16 @@ class AttachmentContainer (Folder): ob.PUT(REQUEST, RESPONSE) RESPONSE.setStatus(httpRespCode) RESPONSE.setHeader('Content-Type', 'text/xml;;charset=utf-8') - return '' % (ob.getId(), escape(ob.title_or_id())) + if ob.meta_type == 'File' : + return '' % (ob.getId(), escape(ob.title_or_id())) + elif ob.meta_type == 'Photo' : + width, height = ob.getResizedImageSize(size=(310, 310)) + return '' % \ + {'src' : 'attachments/%s/getResizedImage?size=%d_%d' % (ob.getId(), width, height), + 'title' : escape(ob.title_or_id()), + 'width' : width, + 'height' : height + } InitializeClass(AttachmentContainer) \ No newline at end of file