Skip to main content

基于 z3c.table 的 Grok 表格组件包。

项目描述

megrok.z3ctable包是 z3c.table 组件的包装器z3c.table 允许您将 HTML 表格定义为 zope3 组件,将列定义为多适配器。

多亏了 megrok.z3ctable,这些组件现在在 Grok 中完全可用,使它们易于声明和配置。以下组件可用:

  • 桌子

  • 柱子

  • 价值

除了简单的包装之外,megrok.z3cform 还为您提供了创建显示表格的页面的新便捷方法:

  • TableView:显示表格的简单浏览器视图。

  • TablePage:包含在布局中的表格浏览器视图(参见 megrok.layout)

有关更多信息和更详细的示例,请查看此包的测试目录。

入门

首先,我们对包 grokkers 进行 grok:

>>> import grokcore.component as grok
>>> from grokcore.component import testing
>>> from grokcore.component.testing import grok_component
>>> testing.grok('megrok.z3ctable')

测试设置

让我们创建简单的项目来演示包。在这里,表格将是文件夹列表的表示,显示(以有序的方式)简单容器的内容:

>>> from megrok.z3ctable.tests import Container, Content
>>> from zope.container import btree
>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()

让我们创建 2 个虚拟内容:

>>> christian = Content('Christian', 29)
>>> trollfot = Content('Trollfot', 27)

然后,我们实例化一个容器并将 2 个虚拟对象存储在其中:

>>> container = Container()
>>> container['christian'] = christian
>>> container['trollfot'] = trollfot

一个简单的表

我们定义一个简单的表。在这里,组件只注册自己,内部没有定义逻辑:

>>> from megrok.z3ctable import Table, Values
>>> from megrok.z3ctable import ITable

>>> class SimpleTable(Table):
...    """ My Simple Table """

>>> ITable.implementedBy(Table)
True

让我们做一个表的实例:

>>> myTable = SimpleTable(container, request)
>>> ITable.providedBy(myTable)
True

现在,我们需要为我们的表格提供内容。为了提供一种可插入的方式来获取内容,z3c.table 提出了一个名为“Values”的适配器。它负责获取数据以显示:

>>> class MyValues(Values):
...     grok.adapts(btree.BTreeContainer, None, SimpleTable)
...
...     @property
...     def values(self):
...         return self.context.values()

我们摸索 MyValues 适配器:

>>> grok_component('MyValues', MyValues)
True

>>> myTable.update()
>>> myTable.render()
u''

当前没有输出,这是因为表本身不包含逻辑。数据由称为“列”的组件显示。Column 是一个多适配器,适应上下文、请求和表。它允许非常灵活地处理表格和数据表示。让我们定义一个简单的列:

>>> from zope.interface import Interface
>>> from megrok.z3ctable import NameColumn
>>> from megrok.z3ctable import table
>>> class Names(NameColumn):
...     grok.context(Interface)
...     table(SimpleTable)

现在我们探索我们的专栏:

>>> grok_component('Names', Names)
True

并再次渲染表格:

>>> myTable.update()
>>> print myTable.render()
<table>
  <thead>
    <tr>
      <th class="sorted-on ascending">Name</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="sorted-on ascending">christian</td>
    </tr>
    <tr>
      <td class="sorted-on ascending">trollfot</td>
    </tr>
  </tbody>
</table>

干得好。一个功能齐全且可插拔的表。享受。

变更日志

1.6.0 (2013-10-08)

  • 现在使用grokcore.layout代替megrok.layout

1.5.0 (2011-01-31)

  • 将 grokkers 改编为 martiangrokcore.component 最新版本。

1.4.2 (2010-05-07)

  • 从 Dolmen 的 GIT 迁移到 Zope 的 Subversion 存储库。清单已被删除,而许可证文件已添加。megrok.z3ctable在 ZPL 许可下。

1.4.1 (2010-02-21)

  • 清除所有 zope.app 依赖项。删除了未使用的导入并重新构建了测试模块。我们现在使用最小的依赖项。

  • megrok.z3ctable现在需要zope.component >= 3.9.1。这意味着您必须在构建中使用最新的 ZTK KGS。此 KGS 可以通过 groktoolkit 包含在内。

1.4.0 (2010-01-16)

  • 现在使用 ztk 版本并将其修复为 z3c.table >= 0.8

1.3.0 (2009-09-24)

  • 现在 Columns 有自己的 grokker。在此之前,它们被视为基本的多适配器。我们现在使用带有显式指令的专用 grokking 组件,可以自动链接到上下文和表格组件。阅读 ftests 中的测试“test_implicit”以获取更多详细信息。[巨魔足]

1.2.1 (2009-09-18)

  • 为表单中的模板添加新测试 [cklinger]

1.2.0 (2009-09-17)

  • 让 megrok.z3ctable 与 grokcore.view 1.12.2 一起工作 [cklinger]

1.1.0 (2009-09-19)

  • 将 megrok.z3ctable 适配到新版本的 megrok.layout 和 grokcore.view [cklinger]

项目详情


下载文件

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

源分布

megrok.z3ctable-1.6.0.tar.gz (15.5 kB 查看哈希

已上传 source