X-Git-Url: https://svn.cri.ensmp.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