跳转到主要内容

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

项目描述

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

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

  • 表格

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

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

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

有关更多信息及更详细的示例,请参阅此包的测试目录。

入门指南

首先,我们了解包的grokkers

>>> 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

让我们创建一个Table实例

>>> 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''

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

>>> 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)

  • 适配了 martian 和 grokcore.component 的最新版本。

1.4.2 (2010-05-07)

  • 从 Dolmen 的 GIT 迁移到 Zope 的 Subversion 代码库。已删除 MANIFEST,同时添加了许可证文件。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)

  • 现在列有自己的解析器。在此之前,它们被视为基本的多适配器。我们现在使用一个专门的解析组件,具有明确的指令,这些指令可以自动链接到上下文和表格组件。有关更多详细信息,请阅读 ftests 中的测试“test_implicit”。[trollfot]

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 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面