跳转到主要内容

Zope的通用批量支持

项目描述

此包为Zope 2、Zope 3和Grok提供批量功能。

示例

这是一个非常直接的示例。我们需要定义一个工作上下文

>>> import grokcore.view as grok
>>> from persistent import Persistent
>>> from zope.component import queryMultiAdapter
>>> from zeam.utils.batch import Batch
>>> from zeam.utils.batch.interfaces import IBatching

>>> class Content(Persistent):
...     pass

现在,您可以定义一个使用批量并渲染它的视图

>>> class MyViewClass(grok.View):
...     grok.context(Content)
...
...     def update(self):
...          fulllist = [1, 2, 3, 4, 5, 6, 7, 8, 9]
...          self.myitems = Batch(
...                 fulllist , count=3, name='nbs', request=self.request,
...                 factory=lambda x: str(x))
...
...          self.batch = queryMultiAdapter(
...                 (self, self.myitems, self.request),
...                     IBatching)()
...
...     template = grok.PageTemplate('''
...     <tal:navigation tal:replace="structure view/batch" />
...     <span tal:content="item" tal:repeat="item view/myitems" />
...     <tal:navigation tal:replace="structure view/batch" />
...     ''')

这将生效

>>> from grokcore.component import testing
>>> testing.grok_component("view", MyViewClass)
True

>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()

>>> root = getRootFolder()
>>> root['myObject'] = Content()
>>> myobj = root['myObject']

>>> view = queryMultiAdapter((myobj, request), name="myviewclass")
>>> "batchNav" in view()
True

API

批量

此对象实现了批量。

批量对象使用以下参数实例化

  • 要批量的对象列表

  • 请求

  • 每页项目数(作为count,默认为10)

  • 名称(可选)

  • 一个工厂,它将在每个迭代之前传递给每个项目(可选)

批量是一个可迭代的对象,其行为类似于列表。它仅提供对当前页面的对象集的访问。

它提供了生成的页数和当前位置。请参阅接口,获取更多信息。

一个多适配器提供 IBatching 可以渲染批次。它适应上下文、批次对象和请求。此组件的 __call__ 方法将返回包含您批次的基本控件(如下一页和上一页链接以及直接访问其他页面的链接)的 HTML 片段。

DateBatch

该对象实现了一个日期范围的批次。它与常规批次具有相同的 API,除了

  • 对象列表被一个可调用的函数替换,该函数接收一个 datetime 值作为参数,并返回给定周期内的对象列表

  • 计数选项已更改为使用 BATCH_DAYBATCH_MONTH 标记对象。

变更日志

1.1 (2012-09-24)

  • 添加了一种新的批次类型,AlphabeticalBatch,类似于 DateBatch,可以用来遍历固定集合的项目,如字母或数字。

  • 修复了在常规批次中,当 start 值高于批次元素数量时的一个错误。

  • 为日期批次添加了两个选项 minmax,以定义可能的限制。

1.0 (2011-11-07)

  • 添加了一个新的批次组件,DateBatch,它能够浏览年份或月份的周期。

  • batch 已重命名为 Batch。方法已重命名以遵循 pep8 建议(例如,batchLen 重命名为 batch_length)。

  • 已审查模板:值可以通过模板变量 batch 访问,而不是直接访问。此修复解决了与 Chameleon 兼容性的问题,其中 next 无法定义(这是一个 Python 内置函数)。

0.7 (2010-10-05)

  • 在批次对象中添加了一个 __len__ 方法,它返回通过当前批次可查看的对象数量。这样,它可以与模板中的 tal:condition 一起使用。

  • 在视图中使用 keep_form_data 选项可以防止在生成的链接中包含已发布的表单数据(有时您想要它们,有时您不想要)。

0.6 (2010-07-15)

  • 生成的批次链接可以包含链接中的其他参数。这允许您对批次表单结果进行批处理。

0.5 (2009-11-17)

  • 批处理视图有两个新属性:firstlast,它们提供了指向第一页和最后一页的链接。

0.4.1 (2009-10-16)

  • 修复了损坏的发行版,该发行版缺少 i18n 文件夹。

0.4 (2009-10-16)

  • 添加了 README.txt 作为 doctest [trollfot]

  • 渲染由 IPageTemplate 组件执行,而不是由 Batching 本身执行。[trollfot]

  • 我们不再使用 IBatchedContent。它已被删除。[trollfot]

  • zeam.utils.batch 现在已完全理解。[trollfot]

  • batchView 已重命名为 Batching。[trollfot]

  • 您可以使用显示批次的视图来适配批次:其名称在生成链接时将保持不变,

  • 批次可以通过计数为 0 来 禁用

  • 添加了法语、英语和荷兰语的翻译。

0.3 (2008-10-18)

  • 修复并添加测试,

  • 如果所有内容都适合一页,则不显示批处理导航,

  • 不再为批次的首页生成特殊链接。

0.2

  • 初始版本

项目详情


下载文件

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

源代码分发

zeam.utils.batch-1.1.tar.gz (15.1 kB 查看哈希值)

上传于 源代码

由以下组织支持

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