zope的通用批处理支持
zeam.utils.batch的Python项目详细描述
这个包为zope 2、zope 3和grok提供了批处理功能。
内容
Example
一个非常直接的例子。我们需要定义一个工作环境 打开:
>>> 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
- Batch
此对象实现批处理。
批处理对象与以下参数关联:
- 要批处理的对象列表
- 请求
- 每页的项目数(按计数,默认为10)
- 名称(可选)
- 在每次迭代(可选)之前传递每个项目的工厂
批处理是一个iterable对象,其行为类似于列表。 它只允许访问当前页的对象集。
它提供生成的页数和当前位置。 有关详细信息,请参阅界面。
提供IBatching的多适配器可以呈现批处理。 它适应上下文、批处理对象和请求。你的电话__ 此组件的方法将返回包含 批处理的基本控件:下一个和上一个链接以及直接 访问其他页面。
- DateBatch
此对象实现日期范围的批处理。同样的道理 API比常规批次,除了:
- 对象列表被替换为 DateTime值具有参数,并返回 给定周期
- count选项更改为使用BATCH_DAY或 BATCH_MONTH标记对象。
Changelog
1.1 (2012-09-24)
- 添加一种新类型的批处理,即按字母顺序的批处理,类似于datebatch, 可用于遍历一组固定的项,如字母 或数字。
- 当start值大于 常规批处理中批处理中的元素。
- 向日期批中添加两个选项min和max,以便 为它定义可能的限制。
1.0 (2011-11-07)
- 添加新的批处理组件DateBatch,该组件能够浏览 一年或一个月。
- batch被重命名为Batch。方法已重命名为 遵循PEP8建议(即^{TT12}$进入^{TT13}$)。
- 已审阅模板:可以通过模板访问值 变量batch直接插入。这解决了一个问题 与变色龙兼容,无法定义next。 (这是一个内置的python)。
0.7 (2010-10-05)
- 添加一个len方法do a batch对象,它返回 可通过当前批处理查看的对象。像这样,可以用 with tal:模板中的条件。
- 在视图中保留窗体数据的选项防止包含已过帐的窗体 生成的链接中的数据(有时需要,有时需要 不要)。
0.6 (2010-07-15)
- 生成的批处理链接可以在链接中包含其他参数。那个 例如,让您批处理表单结果。
0.5 (2009-11-17)
- 批处理视图有两个新属性:first和last,其中 提供指向第一批和最后一批的链接。
0.4.1 (2009-10-16)
- 更正了丢失i18n文件夹的损坏分发。
0.4 (2009-10-16)
注意
此版本与以前的版本不兼容。你被推荐 为了使用您的代码而检查和调整您的代码。
- 添加readme.txt作为doctest[trollfot]
- 渲染是由iPageTemplate组件进行的,而不是由 批处理本身。[巨魔]
- 我们不再使用iBatchedContent。它已被移除。[巨魔]
- 现在,zeam.utils.batch已完全恢复正常。[巨魔]
- BatchView已重命名为批处理。[巨魔]
- 根据显示批次的视图调整批次: 在生成链接时,它的名称将保持不变,
- 批处理可以禁用,计数为0,
- 添加法语、英语和荷兰语的翻译。
0.3 (2008-10-18)
- 修复并添加测试,
- 如果所有内容都适合一页,则不显示批导航,
- 不会为批处理的第一页生成更多的特殊链接。
0.2
- 初始版本