-
Notifications
You must be signed in to change notification settings - Fork 1
thefunny42/Zeam-Form-ZTK
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
=============
zeam.form.ztk
=============
``zeam.form.ztk`` help you to integrate `zeam.form.base`_ with the
Zope Tool Kit. It provides:
- Form fields generation out of zope.schema fields, and zope.schema
fields listed in a Zope interface,
- Widgets for those fields,
- Default action to Add, Edit a content, Cancel a current action by
returning on the default view of a content.
Like `zeam.form.base`_ the focus is to have an API usable by the
developer, not a support of theorical use-cases that you don't need.
.. contents::
Example
=======
Let's create a form to edit a content. Here we have an interface for
our content::
from zope import schema, interface
class IClan(interface.Interface):
pass
class IPerson(interface.Interface):
first_name = schema.TextLine(title=u"First Name")
last_name = schema.TextLine(title=u"Last Name")
age = schema.Int(title=u"Age", required=False)
single = schema.Bool(title=u"Is single ?", default=True)
We assume that a Person is in a Clan. We can implement a Person::
from persistence import Persistent
class Person(Persistent):
interface.implements(IPerson)
first_name = None
last_name = None
age = None
single = True
Add form
--------
You can add a new Person in a clan like this::
import zeam.form.ztk as form
class Add(form.Form):
form.context(IClan)
label = u"New person"
fields = form.Fields(IPerson)
actions = form.Actions(
form.AddAction("Add", factory=Person),
form.CancelAction("Cancel"))
actions['add'].fieldName = 'last_name'
Edit form
---------
You can edit a Person like this::
class Edit(form.Form):
form.context(IPerson)
label = u"Change person details"
fields = form.Fields(IPerson)
actions = form.Actions(
form.EditAction("Update"),
form.CancelAction("Cancel"))
ignoreContent = False
API
===
All the API of ``zeam.form.base`` is exported as well.
Actions
-------
``AddAction``
Action which take an extra parameter, factory, to create an object
stored on the content object. The created object is added with the
help of ``INameChooser`` to get its identifier. The option
``fieldName`` will be used to lookup a value in the form data to
give as potential identifier to ``INameChooser``. Afterwards the
created object is edited (like EditAction does) with the form data.
``EditAction``
Action which use the form data to change values on the content
object, designated by the form fields, after validation of the form
submission.
``CancelAction``
Simple action which return on default view of the content without
validating the form submission.
Fields
------
Currently supported fields:
- Date, Datetime: generate a text line input and parse/display the
date using the locale,
- TextLine, Text, Boolean, URI, Email, and numbers (Int, Float ...),
- Password,
- Choice: generate a select or a radio boxes (widget mode ``radio``),
- Object,
- Collections: List, Set, Tuple in input and display mode:
- Collection of choices: generate a widget with a list of checkboxes,
- Collection of objects: generate a table to edit multiple objects,
- Other collection: generate a widget with generic add an remove actions.
For more documentation, please report to the doctests included in the code.
.. _zeam.form.base: http://pypi.python.org/pypi/zeam.form.base
About
Zope Toolkit support for Zeam Form
Resources
Stars
Watchers
Forks
Packages 0
No packages published