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

  • 为最新版本的martiangrokcore.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]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JList侦听器找不到符号   多点触摸跨平台java应用程序(Windows、Mac和Linux(Ubuntu)(可能是Android))   在UnitTest中找不到java类加载器资源   java当我尝试在Eclipse中运行我的minecraft mod时,我总是遇到这个错误,这是什么意思?   内部有一个同步块的静态方法,在java中阻止整个类?   不支持java操作:具有BillableStatus的费用在采购中应具有AccountBasedExpenseLineDetail行的CustomerRef   java运行时常量池GC集合   java无法解析配置“:app:\u debugApk”的所有依赖项。找不到名为“default”的配置   在GCP计算引擎中托管Neo4j的java   java如何从BroadcastReceiver更新片段选项卡?   线程“main”组织中的java异常。冬眠注释异常:@org。冬眠注释。表引用未知表:ProductForPractice   在Java/Groovy中嵌入处理   java Android REST教程/示例项目   java我可以在同一测试中在一个模拟器上启动应用程序,在另一个模拟器上启动移动浏览器吗?   java如何更改通知横幅的方向?   安卓 Java帮助实现Firebase授权   if else之后的rs.next()中出现java错误?