Datagrid for Archetypes content, rows based on z3c.form
Project description
Introduction
archetypes.gridfield adds support for data grids which are not inline editable. Rows are addable/editable using overlay window.
Please note, current version requires branch of plone.app.jquerytools which is included in the example buildout.
Additionally, gridfield widget is displayed on the base_view form only (field is not visible on the object edit form!!). This is not a bug but a feature.
Usage
Install as usuall. After that you can add additional field to you content type:
from archetypes.gridfield import GridField ... GridField('field_name', row_interface = IProjectRow ) ...
IProjectRow is a zope Interface which defines the data for one row. The addform and editform are generated from this one:
class IProjectRow(Interface): title = schema.TextLine(title=u'Project name', required=True) kind = schema.Choice(title=u'Project type', vocabulary="project.projectTypesVocabulary") start_date = schema.Date(title=u'Start date', required=True) end_date = schema.Date(title=u'End date', required=False)
You may define custom add/edit forms and update widgets:
from archetypes.gridfield.forms import AddForm, EditForm from collective.z3cform.datetimewidget import DateFieldWidget class ProjectAddForm(AddForm): def __init__(self, context, request): super(ProjectAddForm, self).__init__(context, request) self.fields['start_date'].widgetFactory = DateFieldWidget self.fields['end_date'].widgetFactory = DateFieldWidget class ProjectEditForm(EditForm): def __init__(self, context, request): super(ProjectEditForm, self).__init__(context, request) self.fields['start_date'].widgetFactory = DateFieldWidget self.fields['end_date'].widgetFactory = DateFieldWidget
Since AddForm/EditForm is redefined, we must specify the forms in the field definition:
GridField('projects', row_interface = IProjectRow, add_form = ProjectAddForm, edit_form = ProjectEditForm, widget = GridWidget(label="Projects") )
Example
If you want to test archetypes.gridfield in separate buildout, checkout full package from SVN and use example.cfg buildout configuration:
svn co http://svn.plone.org/svn/archetypes/MoreFieldsAndWidgets/archetypes.gridfield/trunk gridfield cd gridfield python2.4 bootstrap.py bin/buildout -c example.cfg bin/instance fg
Finally visit base_view template of any object, eg. frontpage:
Usage in custom buildout
Please note, package is still in the development. Requires branch of plone.app.jquerytools and some custom version pins. Everything is set-up in example buildout so copy the requirements from it.
Changelog
1.0dev (unreleased)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.