[Zope3-dev] Re: Schemas, Fields, and Fieldsets

Gary Poster gary@modernsongs.com
Mon, 31 Mar 2003 08:40:34 -0500


Jim wrote, about grouping fields in schema:
 > I'll note that *one* way we were thinking about approaching this is with
 > nested schema. Something like:
 >
 > class IContact(Interface):
 >     name = TextLine(...)
 >     email = TextLine(...)
 >     phone = TextLine(...)
 >
 > class IMetaSyntax(Interface):
 >     foo = ...
 >     bar = ...
 >     baz = ...
 >
 >
 > class ISpam(Contact):
 >    contact = ComponentField(IContact)
 >    contact = ComponentField(IMetaSyntax)
 >
 > and have composite widgets generated for component fields.

I'd like to see this in the configuration realm (ZCML etc.) first.

Grouping fields has use cases both in data description and in form 
presentation--that is, as a schema and as a form.  Forms are currently 
configured in ZCML, so ZCML and eventually TTW form configuration are 
the other main realms in which this problem could be solved.

IMO:

Grouping fields for a form, via ZCML and eventually TTW, is a must have. 
  This is a task that must be performable by site producers and designers.
"Producers and designers should be able to control the layout of their 
forms" is a core requirement.

Grouping fields within a schema (in this manner) is only a nice-to-have.

   * "Information architects should be able to group fields so that 
certain fields *must* be grouped together in presentation" puts the 
information architect in charge of aspects of usability, design, and 
possibly even marketing, which is a poor division of responsibility.

   * "Information architects should be able to group fields so that they 
are organized by default, but this organization can be overriden by the 
site producers and designers" is a nice-to-have.  If the site producers 
and designers can control this, then that will get the job done.

The kind of schema-within-schema grouping that is more interesting for 
an information architect is already handled, I believe.

Gary