fixes for resource/file handling on the management interface

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1676 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2007-04-07 07:27:46 +00:00
parent ec1d6ba538
commit a1d73273ee
3 changed files with 18 additions and 6 deletions

View file

@ -59,14 +59,14 @@ renderingFactories = {
class CustomFileWidget(FileWidget):
def hasInput(self):
print 'hasInput', self.request.form.get(self.name)
if not self.request.form.get(self.name):
return False
return True
class ResourceEditForm(EditForm):
@Lazy
@property
def typeInterface(self):
return IType(self.context).typeInterface
@ -78,8 +78,8 @@ class ResourceEditForm(EditForm):
omit = [f for f in typeInterface if f in IBaseResource]
fields = FormFields(fields.omit(*omit), typeInterface)
dataField = fields['data']
if IBytes.providedBy(dataField):
dataField.customWidget = CustomFileWidget
if IBytes.providedBy(dataField.field):
dataField.custom_widget = CustomFileWidget
return fields
def setUpWidgets(self, ignore_request=False):

View file

@ -608,12 +608,26 @@ class IFile(IResourceAdapter, IResourceSchema):
may be downloaded instead.
"""
data = schema.Bytes(
title=_(u'Data'),
description=_(u'Resource raw data'),
default='',
missing_value='',
required=False)
class IExternalFile(IFile):
""" A file whose content (data attribute) is not stored in the ZODB
but somewhere else, typically in the file system.
"""
data = schema.Bytes(
title=_(u'Data'),
description=_(u'Resource raw data'),
default='',
missing_value='',
required=False)
class IImage(IResourceAdapter):
""" A media asset that may be embedded in a (web) page as an image.

View file

@ -323,8 +323,6 @@ class ExternalFileAdapter(FileAdapter):
return self.context.__name__
def setData(self, data):
if not data:
return
storageParams = self.storageParams
storageName = self.storageName
storage = component.getUtility(IExternalStorage, name=storageName)