Plone中使用的批处理功能
项目描述
欢迎使用Plone批处理文档!
此包包括创建批处理序列的功能。
它起源于为Plone编写的PloneBatch模块,而Plone本身是基于Zope2的ZTUtils.Batch。
变更日志
2.0.6 (2023-06-16)
内部
更新配置文件。[plone开发者] (55bda5c9, 69cb8571, 9e6e627d)
2.0.5 (2023-05-22)
内部
更新配置文件。[plone开发者] (12f48b08, 50c0e759)
2.0.4 (2023-03-14)
内部
更新配置文件。[plone开发者] (e42131fe)
2.0.3 (2023-02-22)
内部
使用(GitHub)组织级别的linting工作流程。[gforcada] (#1)
更新包配置以使用pre-commit。[maurits] (#2)
2.0.2 (2023-02-07)
错误修复
声明所有依赖项,如z3c.dependencychecker所报告的。[gforcada] (#1)
使用依赖项测试环境更新tox配置。[gforcada] (#1)
2.0.1 (2023-01-26)
错误修复
通过github.com/plone/meta统一仓库配置。[gforcada] (#1)
内部
更新默认Plone meta的配置。[maurits] (#34)
2.0.0 (2022-11-30)
错误修复
最终发布。[gforcada] (#600)
2.0.0a1 (2021-04-21)
破坏性更改
更新以支持Plone 6的Bootstrap标记。[petschki, agitator] (#28)
新功能
从父请求包含请求表单参数,以允许在plone.app.standardtiles中进行批处理,并使用collective.collectionfilter进行筛选。[agitator] (#26)
1.1.6 (2020-04-20)
错误修复
较小的打包更新。(#1)
1.1.5 (2018-11-29)
错误修复
对于孤立的单页,不显示批处理导航。[maurits] (#9)
1.1.4 (2018-09-27)
错误修复
修复Python 2和Python 3中的navlist差异(参考#21)[ale-rt]
Python 3修复。[thet]
1.1.3 (2018-06-04)
新功能
分页:使标签和箭头更容易自定义。[iham]
1.1.2 (2017-07-20)
错误修复
添加了缺失的Zope2依赖项。[davisagli]
1.1.1 (2016-08-12)
修复
使用zope.interface装饰器。[gforcada]
1.1.0 (2016-02-12)
新功能
重构batchnavigation HTML布局,使用nav/ul/li元素代替div/span。[davilima6]
将已弃用的listingBar CSS类切换到pagination。[davilima6]
使省略号可定制,并为分页标记提供更多CSS钩子。[davilima6]
1.0.8 (未发布)
新功能
使省略号可定制,并为分页标记提供更多CSS钩子。这还弃用了CSS类listingBar,以支持更常用的pagination,它将成为Plone 5.0.2及更高版本的标准。[davilima6]
1.0.7 (2016-01-08)
修复
修复发布包中缺失的测试。[thet]
1.0.6 (2016-01-08)
新功能
为make_link方法引入“omit_params”选项,并默认过滤出ajax_load。当通过ajax加载batchnavigation的内容时,它不会渲染启用ajax_load的链接,这可能会引起可用性问题。[thet]
修复
PEP 8,UTF 8头,文档清理。[thet]
1.0.5 (2015-07-18)
确保页码值不大于numpages,否则在orphan中使用previous_pages时将失败。[gbastien]
允许孤岛大小等于批处理大小。这允许批处理大小为0且默认孤岛大小为0的边缘情况。[do3cc]
1.0.4 (2015-04-28)
修复与孤岛相关的lastpage计算问题。[gbastien]
1.0.3 (2015-02-20)
修复孤岛问题。[do3cc]
1.0.2 (2014-04-13)
修复问题,其中start >= end将始终返回最后一个项目。https://dev.plone.org/ticket/13880[thepjot]
修复当序列长度恰好等于页面长度时的multiple_pages问题。[gaudenz]
1.0.1 (2014-01-27)
修复当报告的长度与len()迭代返回的完整未批处理序列不同时的序列问题。[alecm]
1.0 (2013-05-23)
在BatchView中使用索引而不是模板属性,以便仅自定义模板。[vincentfretin, thomasdesvenain]
修复“第一项”的错误的msgid。[vincentfretin]
1.0b1 (2013-01-17)
尚未有任何更改。
1.0a1 (2012-04-25)
将Plone批处理实现因式分解为单独的egg(PLIP #12235)[tom_gross]
用法
在plone.batching中定义的批处理通常由两件事组成
批处理对象。这通常是一个序列的包装器,它提供信息片段。
批处理视图。这是必需的用于显示。它包含到1中定义的片段的链接。
这两个元素可以在Python代码和页面模板中定义和访问。
在Python代码中的使用
批量的实例化方式如下
>>> from plone.batching import Batch >>> batch = Batch(range(100), size=15, orphan=10)
这会从序列[0, 1, …, 99]生成5个子批量,每个子批量包含15个项目,以及一个包含最后25个项目的子批量(包括10个孤立的项目)。有关BaseBatch类中可用的详细参数描述,请查看API。
实例化批量的另一种方式如下
>>> batch = Batch.fromPagenumber(range(100), pagesize=15, pagenumber=1)
这将产生6个包含15个项目的批量和一个包含最后10个项目的批量。这种方式创建批量是一个快捷方式,并不支持规范构造函数支持的所有选项。
对于大型序列,该软件包还提供了一个基类:QuantumBatch。这个批量生成量子跳跃以实现更快的导航。
>>> from plone.batching.batch import QuantumBatch >>> qb = QuantumBatch(range(1000), 10, start=500, quantumleap=1) >>> qb.leapforward [69, 84] >>> qb.leapback [18, 33]
可以使用两个属性leapback和leapforward通过5次点击来导航存储在批量中的内容。
在视图中的使用
Plone.batching附带了一个可定制的批量视图batchnavigation,它有一个名为BatchView的视图类。该视图附带一个模板。如果您想自定义它,只需重写make_link方法。该方法应返回一个包含指定pagenumber的链接的字符串。以下是从plone.app.content中的folder_contents实现中的一个示例
>>> from plone.batching.browser import BatchView >>> from ZTUtils import make_query >>> class MyBatchView(BatchView): ... def make_link(self, pagenumber): ... batchlinkparams = self.request.form.copy() ... return '%s?%s' % (self.request.ACTUAL_URL, ... make_query(batchlinkparams, {'pagenumber': pagenumber}))
您需要注意的一件事是,必须将批量作为第一个参数调用批量视图。
>>> from Products.Five import BrowserView >>> class MyContentView(BrowserView): ... def batch(self): ... " " # see above how a batch is defined ... ... def batching(self): ... return MyBatchView(self.context, self.request)(self.batch)
现在您可以在视图的模板中使用它。
<div tal:replace="structure view/batching" />
不兼容性
XXX __len__ 方法
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解更多关于安装包的信息。