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_DAYBATCH_MONTH标记对象。

Changelog

1.1 (2012-09-24)

  • 添加一种新类型的批处理,即按字母顺序的批处理,类似于datebatch, 可用于遍历一组固定的项,如字母 或数字。
  • start值大于 常规批处理中批处理中的元素。
  • 向日期批中添加两个选项minmax,以便 为它定义可能的限制。

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)

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

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

  • 初始版本

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

推荐PyPI第三方库


热门话题
如何在java swing表单配置文件中显示动态布局   swing Java使用GridLayout和鼠标交互式JPanel创建JFrame   java使用jsp dao和servlet从数据库中的4行中只插入几行   java SqlLite:我们可以选择行作为列吗?   启动glassfish服务器时java获取错误   PersistenceUnit的java部署[…]失败。关闭此PersistenceUnit的所有工厂   java将具有多个关系的实体与集合中的任何元素进行匹配   java对命名模式的建议,该模式在op失败时尝试强制转换返回null   使用jtwitter的java安卓抛出错误   使用Java方法查找数组中最小int的位置   SwingJava。网络气球提示没有出现   java无法使用JavaMail api发送邮件   java HashSet contains()为自定义对象返回false。hashCode()和equals()似乎实现正确   Java:在运行时和编译时向类中添加字段?   java正在服务类中导入jersey和JAXR,这被认为是错误的做法