跳转到主要内容

Archetypes内容的数据网格,基于z3c.form的行

项目描述

简介

archetypes.gridfield添加了对非行内可编辑的数据网格的支持。可以使用覆盖窗口添加/编辑行。

请注意,当前版本需要包含在示例buildout中的plone.app.jquerytools分支。

此外,gridfield小部件仅在base_view表单上显示(字段在对象编辑表单上不可见!!)。这不是错误,而是功能。

用法

按常规方式安装。之后,您可以向内容类型添加其他字段

from archetypes.gridfield import GridField
...

GridField('field_name',
    row_interface = IProjectRow
)

...

IProjectRow是一个zope接口,它定义了一行数据。添加表单和编辑表单由此生成

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)

您可以定义自定义的添加/编辑表单和更新小部件

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

由于AddForm/EditForm已被重新定义,我们必须在字段定义中指定表单

GridField('projects',
    row_interface = IProjectRow,
    add_form = ProjectAddForm,
    edit_form = ProjectEditForm,
    widget = GridWidget(label="Projects")
)

示例

如果您想在单独的buildout中测试archetypes.gridfield,请从SVN检出完整包并使用example.cfg buildout配置

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

最后,访问任何对象的base_view模板,例如,主页

http://127.0.0.1:8080/portal/front-page/base_view

在自定义buildout中的使用

请注意,该软件包仍在开发中。需要plone.app.jquerytools的分支和一些自定义版本标记。所有设置都在示例buildout中,因此请从其中复制需求。

变更日志

1.0dev(未发布)

  • 初始版本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

archetypes.gridfield-0.1a1.zip (31.6 kB 查看哈希值

上传时间 源代码

由以下机构支持