Source code for plone.app.blocks.layoutbehavior

from zope.interface import implements, alsoProvides, Interface

from zope import schema

from plone.app.blocks.interfaces import IOmittedField
from plone.app.blocks.interfaces import ILayoutField

from plone.app.blocks.interfaces import _


[docs]class LayoutField(schema.Text): """A field used to store layout information """ implements(ILayoutField)
class ILayoutAware(Interface): """Behavior interface to make a type support layout. """ content = LayoutField( title=_(u"Content"), description=_(u"Content of the object"), required=False, ) pageSiteLayout = schema.Choice( title=_(u"Page site layout"), description=_(u"Site layout to apply to the current page"), vocabulary="plone.availableSiteLayouts", required=False, ) sectionSiteLayout = schema.Choice( title=_(u"Section site layout"), description=_(u"Site layout to apply to pages under this section"), vocabulary="plone.availableSiteLayouts", required=False, ) try: from plone.autoform.interfaces import IFormFieldProvider alsoProvides(ILayoutAware, IFormFieldProvider) except ImportError: pass alsoProvides(ILayoutAware['content'], IOmittedField) alsoProvides(ILayoutAware['pageSiteLayout'], IOmittedField) alsoProvides(ILayoutAware['sectionSiteLayout'], IOmittedField)