基于 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 改编为 martian和grokcore.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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a408cf4a4201187a20f71de119a8a8e8f876d6d7a3863dd80e4fe63a3fbfca4 |
|
MD5 | b131409ccba56c444dc61ec183d644e9 |
|
布莱克2-256 | 398907f468dc83ab08a08c2b3e99f726b7fa209f7beced6e8417257f59b2b9c4 |