Introduction to CPSUserForms

Author: Georges Racinet <>


1   Form documents

Form documents are enhanced cases of CPSDocument's flexible documents: when a contributor adds or moves a widget in the form, it works completely in the same way as if it were the flexible part of a Document or News Item (types defined in CPSDefault).

This has the great advantage to make all standard widget types usable, and factorizes the debugging costs that plagued the late CPSCollector.

The template layout is user_form_form. As you may see in the default profile, each widget has additional (not defined at class level) properties:

The rendering for readers is made in the view_form layout mode. Template widgets are parametrized to be in edit mode for this layout mode.

2   Storage

Storage is done with a subclass of ZODB Directory, held in the proxy for clear separation between workspaces and sections version. The subclass is called ProxyLocalDirectory. The difference with standard ZODBDirectory is the ability to use the flexible schema that backs the form.