Hello everyone,

Roger and I are proud to announce the first release of the new form and widget
framework ``z3c.form``! After years of talking about it, months of thinking
about it and many weeks of implementation, we have finally completed it.

For the curious and impatient ...

To run the demos do the following::

  $ svn co svn://svn.zope.org/repos/main/z3c.formdemo/trunk formdemo
  $ cd formdemo
  $ python bootstrap.py
  $ ./bin/buildout
  $ ./bin/demo fg

Now you can access the demo under:


Since this takes a while to build, you can read on while waiting for the demo
to come up. :-)

Goals of z3c.form

While taking the best of the older ``zope.app.form`` and ``zope.formlib``
packages, this new framework provides much more flexibility and hooks as are
needed in daily development. For example, creating a simple form can look
almost identical to ``zope.formlib``, but integrating sub-forms is much

Another important issue for us was keeping up-to-date with today's latest Web
developments, especially AJAX-features. It is an expressed goal of this
framework to provide enough flexibility to fully support AJAX-driven forms and

A secondary goal is to provide flexibility to allow experimentation with new
ideas without interupting the entire framework. Many of the features are
implemented as components allowing simple replacement as desired.

State of the Code

We consider the code feature complete with some real-world user scenarios
implemented. The framework has not been used in a production environment yet,
but we will base all our future project on it and switch older projects to
this framework as needed.


This is the main package implementing the framework. It is 100% tested in a
multitude of text files; start by reading README.txt, which provides you with
an overview and priorities the text files for you.

Unit Tests: 478
Documentation: 193k in 24 text files
Architecture Layout: form-graph.png, widget-graph.png


This package contains some base templates for DIV- and TABLE-based form
layouts. Both layout options are implemented in different layers, allowing
you to chose either layout default by simply adding the layer to your skin.


Here you will find some small demo sub-packages that demonstrate the framework
as it is to be used:

* Hello World Message

  A demo of adding, editing and displaying simple message objects. It
  demonstrates the simple usage of add, edit and display forms. It also adds
  another button to the edit form.

* Widgets

  A simple form whose purpose is to demonstrate the completeness of the input
  widgets. All fields except Dict and Object have an input widget as
  demonstrated in the form. It also demonstrates how the content object
  retrieval can be customized in a form.

* Calculator

  A simple calculator implemented as a form. The demo shows how to write
  different types of buttons, register handlers for those button types and
  hook in a custom action manager.

* Wizard

  This simple, linear wizard demonstrates the sub-form capabilities of
  ``z3c.form``. Since these packages do not provide an object widget, this
  demostration also shows how this need can bebetter solved using sub-forms.

* Table/Spreadsheet

  This little table allows you to add and edit a simple content component
  within a table. The table is rendered using the ```zc.table`` package
  demonstrating how the two packages can be used together.


The ``jquery`` namespace packages provide a first attempt to have AJAX-enabled
forms. It is already possible to validate widget values and do some other
form-unrelated UI goodies.

The features within the ``jquery`` and form packages will soon be demonstrated
in detail on the new www.zope.org website, which will also be available in
code form as ``z3c.website``. So stay tuned!


All packages have been released in source and binary-egg format on PyPI and
``download.zope.org/distribution``. You can use setuptools to install
them. Here is a list of all packages:

* z3c.form
* z3c.formui
* z3c.formdemo
* jquery.javascript
* jquery.layer
* jquery.widget


Roger and Stephan
Zope3-users mailing list

Reply via email to