skip to navigation
skip to content

plone.schemaeditor 1.2.1

Provides through-the-web editing of a zope schema/interface.

Latest Version: 2.0.18


plone.schemaeditor provides a through-the-web interface for modifying Zope 3 schemata (interfaces).

Currently there is support for:

  • adding and removing fields
  • editing attributes of existing fields
  • reordering fields
  • renaming fields

plone.schemaeditor only handles the actual schema editing. To be useful, it requires some integration code to take care of the following pieces:

  • traversing to a schema that is used as the context of the editor
  • persisting schema changes across Zope restarts

See (along with plone.dexterity and plone.supermodel) for one approach to this integration.

The following field types (from zope.schema) are currently supported:

  • TextLine
  • Text
  • Int
  • Float
  • Bool
  • Password
  • Datetime
  • Choice (with simple list of values)
  • List of Choice (with simple list of values)

Third-party packages can make additional field types available by registering new IFieldFactory utilities.


  • Zope 2
  • z3c.form
  • plone.z3cform

Despite the namespace, Plone is not a dependency.

Note: This package is released under a BSD license. Contributors, please do not add dependencies on GPL code.



Thanks to:

  • Nathan Van Gheem
  • Martin Aspeli
  • Alex Limi
  • Ross Patterson
  • Steve McMahon


1.2.1 (2012-08-29)

  • Use zope.lifecycleevent. [hannosch]
  • The field edit form now respects autoform hints. Additional schemata can be provided by registering an adapter of the schema context and field to plone.schemaeditor.interfaces.IFieldEditorExtender. [davisagli]

1.2.0 - 2012-02-20

  • Display fields from behaviors in the schema preview too. [davisagli]
  • Prevent the user from creating fields with names that are reserved for Dublin Core metadata. title and description can still be used as long as the fields are of the correct type. [davisagli]
  • Remove unhelpful help text for min_length and max_length fields. [davisagli]
  • The schema listing preview now respects autoform hints (such as custom widgets). [davisagli]
  • Make new boolean fields use the radio widget by default. The field now appears as “Yes/No” in the list of field types. [davisagli]
  • Hide the ‘read only’ setting for fields. [davisagli]
  • Edit field defaults from the schema listing instead of in the field overlays. This simplifies making sure that the default can’t be set to invalid values. [davisagli]
  • Limit the height of text areas in the schema listing to avoid extra scrolling. [davisagli]
  • Fall back to normal traversal if a field isn’t found when traversing the schema context. This fixes inline validation for forms on the schema context. [davisagli]
  • Make it possible to make the schemaeditor not be the default view of the schema context, by specifying the schemaEditorView attribute on the schema context. [davisagli]
  • Added Spanish translation. [hvelarde]

1.1.2 - 2011-11-26

  • Add .mo files which were missing in 1.1.1. [davisagli]

1.1.1 - 2011-11-26

  • Added internationalization and extracted messages for main languages. [thomasdesvenain]
  • Added French translation. [thomasdesvenain]
  • Added Italian translation. [giacomos]

1.1 - 2011-09-24

  • Avoid errors when expanding the range of min and max attributes on a field, and when entering a default outside the range. [davisagli]
  • Validate input for the default attribute of Choice fields based on the field’s vocabulary. [davisagli]
  • Removed support for setting the missing_value attribute of fields through the web. [davisagli]
  • Add a date-only field with no time component. [davisagli]
  • Bugfix: Validate short names of fields. [davisagli]

1.0.3 - 2011-06-15

  • Fix test. [davisagli]

1.0.2 - 2011-06-14

1.0.1 - 2011-05-20

1.0 - 2011-04-30

  • In addition to the normal object events raised when fields are added, edited, and removed, raise a SchemaModifiedEvent on the schema context. This greatly simplifies writing code to serialize schema changes, and makes it possible to track of the schema origin so that we know where to serialize it. [davisagli]
  • Support non-ASCII characters in vocabularies for Choice fields. [davisagli]
  • Change js event used to dynamically set id from title from keyup to change; autocompletion does not raise a keyup event, but does fire change. [smcmahon]
  • jslintify schemaeditor.js [smcmahon]
  • Honor cancel button in field editor popup. [smcmahon]

1.0b2 - 2011-01-22

  • Add another possible base to try for our fixed IDatetime, since may change which one takes precedence. [davisagli]
  • Default to adding Textline fields. [davisagli]

1.0b1 - 2010-04-18

  • Added overlay support to the field edit screens. [davisagli, limi]
  • Revamped UI to show WYSIWYG representation of fields. [davisagli, limi]
  • Removed the JavascriptFormWrapper. [davisagli]
  • Major package cleanup. [davisagli]
  • Omit the ‘required’ and ‘missing_value’ fields for Bool fields. [davisagli]
  • Add the ability to define vocabularies of simple TextLine values. Both single and multiple select fields are provided. [rossp]
  • Override base field interfaces to get the correct field types for the default and missing_value fields, rather than using the MetaFieldWidgetFactory. [rossp]
  • Make sure that normalized ids for new fields use _ instead of -, so that they can be accessed without using getattr. [davisagli]
  • Fix issue with moving fields to position 0 in a schema. [davisagli]
  • List the available field type vocabulary alphabetically. [davisagli]
  • No longer provide a field factory for zope.schema.Bytes, since plone.namedfile provides a better file field and now registers its own field factories. [davisagli]
  • Fix inline validation for the field edit form. [davisagli]
  • Added ReadOnlySchemaListing for listing fields without making them editable. [davisagli]
  • CSS tweaks [davisagli]

1.0a2 - 2009-07-12

  • Changed API methods and arguments to mixedCase to be more consistent with the rest of Zope. This is a non-backwards-compatible change. Our profuse apologies, but it’s now or never. :-/

    If you find that you get import errors or unknown keyword arguments in your code, please change names from foo_bar too fooBar, e.g. add_field() becomes addField(). [optilude]

1.0a1 - 2009-05-23

  • Initial release
File Type Py Version Uploaded on Size (md5) Source 2012-08-30 57KB