跳转到主要内容

plone.app.collection管理复杂查询的复合标准

项目描述

https://github.com/collective/collective.compoundcriterion/actions/workflows/main.yml/badge.svg https://coveralls.io/repos/collective/collective.compoundcriterion/badge.svg?branch=master&service=github

此软件包为plone.app.collection添加了一种新的标准。

动机

有时,某些索引由具有特定逻辑的不同元素组成,或者您需要查询网站的特定元素,例如当前用户组或其他任何内容。这不能使用默认索引和集合UI实现,您需要编写Python代码。

如何使用

在添加/编辑集合时,在可用的索引的“其他”类别下将出现一个新的标准字段,称为“过滤器”。

在选择“过滤器”时,将显示一个选择框,向您展示提供collective.compoundcriterion.interfaces.ICoumpondCriterionFilter接口的命名适配器。

您可以从可用的选项中选择。这仍然可以与其他标准一起使用。

要注册名为适配器的复杂查询构建器,您需要添加此类代码

<adapter for="*"
         factory="collective.compoundcriterion.tests.adapter.CompoundCrietrionFilterAdapter"
         provides="collective.compoundcriterion.interfaces.ICompoundCriterionFilter"
         name="testing-compound-adapter" />

如何测试

将适配器注册zcml添加到configure.zcml文件中(如collective.compoundcriterion中的文件),它将使“testing-compound-adapter”在集合“过滤器”索引中可用。

此测试适配器将查询标题中包含字符串“special_text_to_find”的网站元素。因此创建一个具有此类标题的文档,它应该可以工作。

可以使用第二个适配器进行测试

<adapter for="*"
         factory="collective.compoundcriterion.tests.adapter.SampleCompoundCrietrionFilterAdapter"
         provides="collective.compoundcriterion.interfaces.ICompoundCriterionFilter"
         name="sample-compound-adapter" />

此适配器将查询标题中包含“title_with_sample_text”的元素。

负索引适配器

存在两个特定的适配器来否定查询

  • negative-previous-index 将否定查询中定义的前一个索引的值;

  • negative-personal-labels 执行相同的操作,但针对ftw.labels个人标签,因为当前用户ID在索引值中管理。

翻译

此产品已翻译成

  • 法语。

  • 西班牙语。

您可以为缺失的消息或其他新语言做出贡献,加入我们在 Plone Collective Team 的团队,在 Transifex.net 服务中与全球Plone翻译者社区一起。

贡献者

变更日志

0.7 (2023-04-12)

  • negative-previous-index 中,当某些过滤器没有值时不要中断(因此查询中不存在“v”)。[gbastien]

0.6 (2023-02-13)

  • 添加了 negative-previous-indexnegative-personal-labels 默认适配器。依赖于 imio.helpers。删除了对 unittest2 的依赖。[gbastien]

0.5 (2021-04-20)

  • 添加了Transifex.net服务的集成来管理翻译过程。[macagua]

  • 添加了西班牙语翻译。[macagua]

0.4 (2018-08-31)

  • 在获取适配器时,如果上下文不是集合,则尝试根据各种情况获取真实上下文。这是使用plone.app.contenttypes集合的情况。[gbastien]

  • 不要使用SelectionWidget来渲染查询字符串小部件,因为它对于plone.app.contenttypes集合不再存在。使用MultipleSelectionWidget。这样我们最终可以选择多个过滤器来构建查询。[gbastien]

  • 在ZCatalog 3的查询中使用“not”时,必须在查询字典中将“query”级别替换为“not”。[sgeulette]

0.3 (2016-12-08)

  • 当查询格式不遵循plone.app.querystring规范时,返回清晰的提示信息。[gbastien]

0.2 (2015-09-04)

  • 如果命名适配器返回的查询格式与plone.app.querystring.queryparser.parseFormquery返回的格式不兼容,则引发KeyError,这样它可以正确地与collective.eeafaceted.collectionwidget一起使用。[gbastien]

0.1 (2015-06-02)

  • 初始发布。[IMIO]

项目详情


下载文件

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

源代码分发

collective.compoundcriterion-0.7.tar.gz (22.6 kB 查看哈希值)

上传时间

支持