跳转到主要内容

Plone和DataGridField的附加列

项目描述

DatagridField Plone产品提供的一套附加的列类型。

新列

TextAreaColumn

类似于基本 Column 类型,仅显示一个 textarea HTML元素。

附加参数

rows

默认值:3。textarea的行数。

cols

默认值:0。textarea的列数。如果没有提供,则省略html cols 属性,并使用内联样式“width: 100%”代替。

示例

...
DataGridField('foo',
          columns=("type", "description"),
          widget = DataGridWidget(
                    columns={
                         'type' : Column(_(u"Type")),
                         'description' : TextAreaColumn(_(u"Description"),
                                                        rows=10,
                                                        cols=20),
                    },
         ),
),
...

SelectColumn

类似于DataGridField产品中的默认 SelectColumn,但明确支持使用 vocabulary_factory 方式提供词汇。

附加参数

vocabulary_factory

使用Zope组件实用工具提供已注册词汇的名称。有关更多信息,请参阅Archetypes开发手册。

vocabulary

作为默认SelectColumn,仅当您不提供 vocabulary_factory 时才需要。使用此功能来调用上下文的方法以获取词汇。

示例

...
DataGridField('foo',
          columns=("type", "description"),
          widget = DataGridWidget(
                    columns={
                         'type' : SelectColumn(_(u"Type"),
                                               vocabulary_factory='plone.app.vocabularies.PortalTypes'),
                         'description' : Column(_(u"Description"),),
                    },
         ),
),
...

ReferenceColumn

这是一个复杂的列类型,存储一个唯一的对象“UID”。此列的默认视图渲染将显示到引用对象的正确链接。

您可以使用不同的方式使用此功能。在更简单的示例中,只需将其用作文本列

...
DataGridField('foo',
          columns=("uid", "comment"),
          widget = DataGridWidget(
                    columns={
                         'uid' : ReferenceColumn(_(u"Reference")),
                         'comment' : Column(_(u"Comment")),
                    },
         ),
),
...

因此,您需要自己将正确的UID存储在字段中(这不是很有趣,对吧?)。

如果您想要更多功能,可以启用一个额外的JavaScript模块,您将获得一个autocomplete引用对象的特性

...
DataGridField('foo',
          columns=("uid", "comment"),
          widget = DataGridWidget(
                    helper_js= ('datagridwidget.js', 'datagridautocomplete.js'),
                    columns={
                         'uid' : ReferenceColumn(_(u"Reference")),
                         'comment' : Column(_(u"Comment")),
                    },
         ),
),
...

因此,您需要将默认的 datagridwidget.js(由小部件自动提供)替换为新的 datagridautocomplete.js。这还需要 jQueryUI autocomplete。请阅读下面的“依赖项”部分。

使用autocomplete时,您可以通过两种不同的方式查询Plone

  • 以“/”字符开始的查询将按路径查询文档,因此您可以手动浏览整个站点。

  • 以其他字符开始的查询将执行标题的全文本查询。

附加参数

object_provides

使用全文本查询时,仅返回提供这些接口的对象的结果。默认为空列表(无筛选)。

surf_site

选择是否可以使用“/dir/dir/…”术语来浏览站点树。默认为True(允许)。

search_site

选择是否可以全文查询搜索站点中的项目。默认为True(允许)。

DateColumn

一个简单的列字段,允许插入一些日期。此字段使用jQuery UI datepicker插件

要使用datepicker插件,您需要启用jQuery UI的datepicker插件(见上面信息)并在小部件中添加一个名为 datagriddatepicker.js 的辅助js。请参阅下面的示例。

附加参数

date_format

默认值:yy/mm/dd。要存储在字段中的日期格式。

示例

...
DataGridField('foo',
          columns=("name", "birthday"),
          widget = DataGridWidget(
                    helper_js= ('datagridwidget.js', 'datagriddatepicker.js'),
                    columns={
                         'name' : Column(_(u"Name")),
                         'birthday' : DateColumn(_(u"Birthday"),
                                                 date_format="dd/mm/yy"),
                    },
         ),
),
...

MultiSelectColumn

基于(此包中的)SelectColumn,显示一个复选框列表并存储所选条目的列表。

附加参数:查看所有SelectColumn参数。

示例

...
DataGridField('foo',
          columns=("recipe_name", "recipe_options"),
          widget = DataGridWidget(
                    helper_js= ('datagridwidget.js', 'datagridwidget_patches.js', 'datagridmultiselect.js'),
                    columns={
                         'recipe_name' : Column(_(u"Name of the recipe"),),
                         'recipe_options' : MultiSelectColumn(_(u"Type"),
                                                              vocabulary_factory='your.vocabulary',
                                                              ),
                    },
         ),
),
...

依赖关系

此产品已在以下环境中测试

  • Plone 3.3DataGridField 1.6

  • Plone 4.2 和 4.3 以及 DataGridField 1.9

jQuery版本(针对Plone 3)

参考列(ReferenceColumn)、日期列(DateColumn)和多重选择列(MultiSelectColumn)需要jQuery 1.4.2或更高版本才能运行。Plone 3.3自带jQuery 1.3。您可以自行解决这个依赖问题,或者使用第三方库。

产品提供了替代的通用设置导入步骤(“DataGridField: 注册jQuery 1.4”)。运行此步骤后,默认的Plone jQuery版本将被禁用,然后注册1.4.4版本的jQuery。

不要在Plone 4上运行此操作!

jQueryUI

参考列和日期列需要Plone提供jQueryUI库。此产品不会满足此要求,即使是依赖关系。

如果您已经在Plone网站上使用了jQueryUI(自动完成或日期选择器)的行为,您已经准备好了。如果没有,请查看collective.jqueryui.autocomplete(或阅读其文档页面以了解如何满足这一需求)。

请记住,为Plone提供jQueryUI支持的标准方式是使用collective.js.jqueryui

作者

此产品由RedTurtle技术团队开发。

RedTurtle Technology Site

致谢

在以下机构的支持下开发:

它们都支持PloneGov倡议

变更日志

0.7.0 (2015-05-22)

  • 在多重选择列视图宏中显示所选值,而不是显示特殊字符(“V”)[gbastien]

  • 参考列 - 添加 workflow_states 参数 [sdelcourt]

  • 修复MANIFEST [keul]

0.6.2 (2014-02-19)

  • HTML验证修复。将隐藏的 div 转换为 span [keul]

0.6.1 (2014-02-06)

  • 对字段的 title 提供软支持(见 pull request 12)[keul]

  • 更好地实现了datagridwidget_patches.js方法 [keul]

0.6.0 (2014-01-13)

  • 不再使用jQuery .live(),而是切换到 .delegate()。我们仍然不使用 .on() 以保持jQuery 1.4兼容性。[keul]

  • 添加了 MultiSelectColumn 列 [keul]

0.5.1 (2013-12-12)

  • 修复了 jq JavaScript变量中废弃的使用方法 [davidemoro]

  • 添加了卸载配置文件 [keul]

0.5.0 (2013-09-10)

  • Python代码现在支持1.9.0版本中添加的新 required 方法。旧DGF版本仍然受支持 [keul]

  • Python代码现在支持1.9.0版本中添加的新 col_description 方法。旧DGF版本仍然受支持 [keul]

  • 删除了对 label_msgid 的任何引用,DataGridField也没有使用(见 #9)[keul]

0.4.0 (2013-08-20)

  • 添加了新的列:日期列(DateColumn),允许添加日期值 [cekk]

  • 捕获 ParseError 异常 [keul]

0.3.2 (2012-10-17)

  • 修复了由版本0.3引入的bug。见 #1 [keul]

0.3.1 (2012-06-27)

  • 修复了manifest和readme [cekk]

0.3.0 (2012-06-27)

  • 参考列 - 添加了基本列默认参数: default_methodlabel_msgidrequired [cekk]

0.2.0 (2012-01-30)

  • 参考列 - 添加了可使用单独的通用设置配置文件安装的替代jQuery库 [keul]

  • 参考列 - 全文搜索现在限制在调用上下文的路径中 [keul]

  • 参考列 - 执行AJAX调用的URL从 ICallingContextProvider 适配器获取。第三方产品可以提供比默认的更具体的适配器(默认适配器仍然调用门户URL)[keul]

0.1.1 (2012-01-12)

  • 参考列 - 修复了保存空的新行时会保存随机站点内容的bug [keul]

  • 参考列 - 添加了 surf_sitesearch_site 参数 [keul]

0.1.0 (2011-12-01)

  • 初始发布

项目详情


下载文件

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

源代码分发

collective.datagridcolumns-0.7.0.tar.gz (52.8 kB 查看哈希值)

上传时间 源代码

由以下支持