An optgroup widget for z3c.form.
Project description
Introduction
This package implements a widget that groups select values into optgroups.
Usage
Imagine you have the following schema:
class IMySchema(Interface): country = schema.Choice( required=True, title=u"Country", vocabulary='countries', ) subdivision = schema.Choice( required=True, title=u"State", vocabulary='subdivisions', ) region = schema.Choice( required=True, title=u"County", vocabulary='regions', )
When you create your vocabularies (e.g. using SimpleVocabulary), instead of adding SimpleTerm items:
... for country in pycountry.countries: terms.append(SimpleTerm(value=country.alpha2, token=country.alpha2, title=country.name)) ...
you add OptgroupTerm items:
from z3c.formwidget.optgroup.widget import OptgroupTerm ... country_list = countries(context) for item in pycountry.subdivisions: parent = country_list.getTermByToken(item.country_code).title terms.append(OptgroupTerm(value=item.code, token=item.code, title=item.name, optgroup=parent)) ...
In your form, simply assign the OptgroupFieldWidget:
from z3c.formwidget.optgroup.widget import OptgroupFieldWidget class MyForm(form.Form): fields = field.Fields(IMySchema) fields['subdivision'].widgetFactory = OptgroupFieldWidget fields['region'].widgetFactory = OptgroupFieldWidget
Contributors
Thomas Massmann, Author
Changelog
1.1 (2012-04-26):
Always show no value message as first item. [Thomas Massmann]
1.0.1 (2012-04-14)
MANIFEST.in was missing some entries. [Thomas Massmann]
1.0 (2012-04-14)
Initial release. [Thomas Massmann]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for z3c.formwidget.optgroup-1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f682f1713e62397c6046a957ff8cccd431891ccde7fdbaa255fc8636e7ed656d |
|
MD5 | 0e009cd6673841ef29863e9e101e0032 |
|
BLAKE2b-256 | 97bf79b5836357ce3b5bc541277fffec99d1ea690edd40ac4b2f65a73637d98d |