diff --git a/configure.zcml b/configure.zcml index 3905b51..3f9f9b2 100644 --- a/configure.zcml +++ b/configure.zcml @@ -300,15 +300,6 @@ set_schema="loops.interfaces.IExternalFile" /> - - - - - - @@ -362,8 +353,6 @@ - diff --git a/interfaces.py b/interfaces.py index aa37006..0760ab5 100644 --- a/interfaces.py +++ b/interfaces.py @@ -772,22 +772,6 @@ class IExternalFile(IFile): required=False) -class IAddressableExternalFile(IExternalFile): - """ A file whose content (data attribute) is not stored in the ZODB - but somewhere else, typically in the file system; the data won't - be provided by uploading a file but by explicitly specifying - the address of the file. - """ - - externalAddress = schema.BytesLine( - title=_(u'External Address'), - description=_(u'The full address for accessing the object ' - 'on the external storage, e.g. a filename or path.'), - default='', - missing_value='', - required=False) - - class IImage(IResourceAdapter): """ A media asset that may be embedded in a (web) page as an image. """ diff --git a/resource.py b/resource.py index 86bbb74..f94bb66 100644 --- a/resource.py +++ b/resource.py @@ -54,7 +54,7 @@ from loops.base import ParentInfo from loops.common import ResourceAdapterBase, adapted from loops.concept import ResourceRelation from loops.interfaces import IBaseResource, IResource -from loops.interfaces import IFile, IExternalFile, IAddressableExternalFile, INote +from loops.interfaces import IFile, IExternalFile, INote from loops.interfaces import IDocument, ITextDocument, IDocumentSchema, IDocumentView from loops.interfaces import IMediaAsset, IMediaAssetView from loops.interfaces import IResourceManager, IResourceManagerContained @@ -408,19 +408,6 @@ class ExternalFileAdapter(FileAdapter): return storage.getSize(self.externalAddress, params=self.storageParams) -class AddressableExternalFileAdapter(ExternalFileAdapter): - - implements(IAddressableExternalFile) - - def setExternalAddress(self, addr): - super(AddressableExternalFileAdapter, self).setExternalAddress(addr) - contentType = guess_content_type(self.externalAddress, self.data[:100]) - if contentType: - self.contentType = contentType[0] - externalAddress = property(ExternalFileAdapter.getExternalAddress, - setExternalAddress) - - class DocumentAdapter(ResourceAdapterBase): """ Common base class for all resource types with a text-like data attribute. diff --git a/schema/factory.py b/schema/factory.py index c4b28ab..56c4aaf 100644 --- a/schema/factory.py +++ b/schema/factory.py @@ -26,7 +26,7 @@ from zope.component import adapts from cybertools.composer.schema.factory import SchemaFactory from loops.common import adapted -from loops.interfaces import IResourceAdapter, IFile, INote, IAddressableExternalFile +from loops.interfaces import IResourceAdapter, IFile, INote from cybertools.meta.interfaces import IOptions from cybertools.typology.interfaces import IType @@ -59,21 +59,6 @@ class FileSchemaFactory(SchemaFactory): for f in hide: if f in schema.fields: schema.fields.remove(f) - #if 'request' in kw: - # principal = kw['request'].principal - # if not principal or principal.id != 'rootadmin': - # schema.fields.remove('contentType') - return schema - - -class AddressableFileSchemaFactory(SchemaFactory): - - adapts(IAddressableExternalFile) - - def __call__(self, interface, **kw): - schema = super(AddressableFileSchemaFactory, self).__call__(interface, **kw) - schema.fields.remove('data') - #schema.fields.remove('contentType') return schema diff --git a/type.py b/type.py index f83c492..4e5f783 100644 --- a/type.py +++ b/type.py @@ -34,8 +34,7 @@ from cybertools.typology.type import BaseType, TypeManager from cybertools.typology.interfaces import ITypeManager from loops.interfaces import ILoopsObject, IConcept, IResource from loops.interfaces import ITypeConcept -from loops.interfaces import IResourceAdapter, IFile, IExternalFile, \ - IAddressableExternalFile, IImage +from loops.interfaces import IResourceAdapter, IFile, IExternalFile, IImage from loops.interfaces import ITextDocument, INote from loops.concept import Concept from loops.resource import Resource, Document, MediaAsset @@ -273,8 +272,7 @@ class TypeInterfaceSourceList(object): implements(schema.interfaces.IIterableSource) - typeInterfaces = (ITypeConcept, IFile, IExternalFile, IAddressableExternalFile, - ITextDocument, INote) + typeInterfaces = (ITypeConcept, IFile, IExternalFile, ITextDocument, INote) def __init__(self, context): self.context = context