Package platecom :: Package utils :: Module fieldproperty :: Class ToolDependentFieldProperty
[hide private]
[frames] | no frames]

Class ToolDependentFieldProperty

source code

object --+
         |
        ToolDependentFieldProperty

A version of the field property type for zope schemas which is able to acquire tools. This uses a not-very-nice acquisition hack, and is not generalisable to all acquisition-dependent operations, but should work for tools in the portal root.

>>> from zope.interface import Interface, implements
>>> from zope import schema
>>> from OFS.SimpleItem import SimpleItem
>>> from iccommunity.core.fieldproperty import ToolDependentFieldProperty
>>> from zope.app.component.hooks import setSite
>>> setSite(portal)
>>> class IToolFields(Interface):
...     field1 = schema.List(title = u"field1",
...                          required = False,
...                          default = [],
...                          description = u"Tool dependent field",
...                          value_type=schema.Choice(vocabulary="plone.content_types"))
>>> class ToolFields(SimpleItem):
...    implements(IToolFields)
...    field1 = ToolDependentFieldProperty(IToolFields['field1'])
>>> self.portal._setOb('foo', ToolFields())
>>> foo = getattr(self.portal, 'foo')
>>> foo.field1
[]
>>> foo.field1 = ['ATEvent',]
>>> foo.field1
['ATEvent']
Instance Methods [hide private]
 
__init__(self, field, name=None, get_transform=None, set_transform=None)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
source code
 
__get__(self, inst, klass) source code
 
__set__(self, inst, value) source code
 
__getattr__(self, name) source code

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, field, name=None, get_transform=None, set_transform=None)
(Constructor)

source code 

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
(inherited documentation)