cybertools/composer/schema
helmutm fb12b07bf3 added attribute 'standardFieldName' to Field class for supplying a set of standard attributes; show these on forms and listings
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1983 fd906abe-77d9-0310-91a1-e0d9ade77398
2007-09-01 13:24:51 +00:00
..
browser keep client name in session to allow for free navigation 2007-08-30 14:00:40 +00:00
__init__.py more on cybertools.reporter: control via the field's renderFactory 2007-05-21 17:28:16 +00:00
client.py work in progress: service managment with composer.schema for tumsm 2007-07-31 09:15:48 +00:00
configure.zcml refactoring field processing: class FieldInstance for processing and collecting state information 2007-08-30 07:53:09 +00:00
field.py added attribute 'standardFieldName' to Field class for supplying a set of standard attributes; show these on forms and listings 2007-09-01 13:24:51 +00:00
instance.py added attribute 'standardFieldName' to Field class for supplying a set of standard attributes; show these on forms and listings 2007-09-01 13:24:51 +00:00
interfaces.py added attribute 'standardFieldName' to Field class for supplying a set of standard attributes; show these on forms and listings 2007-09-01 13:24:51 +00:00
README.txt more on cybertools.reporter: control via the field's renderFactory 2007-05-21 17:28:16 +00:00
schema.py rearrangement of schema_macros; added field instance class for number fields 2007-08-30 10:56:28 +00:00
tests.py removed Instance; added schema package 2007-05-15 09:36:02 +00:00

===========================
Schema and Field Management
===========================

  ($Id$)

  >>> from cybertools.composer.schema import Schema
  >>> from cybertools.composer.schema import Field

We start with setting up a schema with fields.

  >>> serviceSchema = Schema(
  ...     Field(u'title', renderFactory=None),
  ...     Field(u'description'),
  ...     Field(u'start'),
  ...     Field(u'end'),
  ...     Field(u'capacity'),
  ... )

For using a schema we need some class that we can use for creating
objects.

  >>> class Service(object):
  ...     pass

The schema will be connected with an object via an instance adapter.

  >>> from cybertools.composer.schema.instance import Editor
  >>> from zope import component
  >>> component.provideAdapter(Editor, (Service,), name="service.edit")

  >>> srv = Service()
  >>> inst = component.getAdapter(srv, name='service.edit')
  >>> inst.template = serviceSchema
  >>> inst.applyTemplate()
  title -
  description -
  start -
  end -
  capacity -