基于z3c.table的grok表组件包。
megrok.z3ctable的Python项目详细描述
megrok.z3c table包是z3c.table的包装。 组件。table允许您将html表定义为zope3 组件,将列定义为多适配器。
感谢megrok.z3ctable,这些组件现在完全可用 在grok中,使它们易于声明和配置。以下 组件可用:
- Table
- Column
- Value
除了简单的包装外,megrok.z3form还为您带来了新的方便 创建显示表格的页面的方法:
- TableView: a simple browser view displaying a table.
- TablePage: a table browser view included in a layout (see 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()
让我们创建两个虚拟内容:
>>> christian = Content('Christian', 29) >>> trollfot = Content('Trollfot', 27)
然后,我们实例化一个容器并将两个假人存储在其中:
>>> 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提出了一个适配器 称为“价值观”。它负责输入要显示的数据:
>>> 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存储库。清单有 在添加许可证文件时被删除。megrok.z3表格 ZPL许可证。
1.4.1(2010-02-21)
- 清除了所有zope.app依赖项。已删除未使用的导入 重新构建测试模块。我们现在用最小的 依赖关系。
- megrok.z3ctable现在需要zope.component >= 3.9.1。这个 意味着你必须在你的建筑中使用最新的ztk-kgs。这公斤 可通过Groktoolkit提供。
1.4.0(2010-01-16)
- 现在使用ztk版本并将其修复为z3c.table>;=0.8
1.3.0(2009-09-24)
- 现在专栏有了自己的专栏。在那之前,他们接受了治疗 作为基本的多适配器。我们现在使用一个专用的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.layout和 grokcore.view[cklinger]