跳转到主要内容

适用于Zope内容管理框架的Uid产品

项目描述

https://github.com/zopefoundation/Products.CMFUid/actions/workflows/tests.yml/badge.svg https://coveralls.io/repos/github/zopefoundation/Products.CMFUid/badge.svg Current version on PyPI Supported Python versions

Products.CMFUid

CMFUid 引入了一个简单的唯一ID实现。

实现

提供的工具将唯一ID附加到对象上。对象不需要知道唯一ID。

当前的实现依赖于门户目录以找到给定唯一ID的对象。接口不暗示使用目录(除了 IUniqueIdBrainQuery)。

哪些工具做什么?

“portal_uidgenerator”工具的职责是生成唯一ID。“portal_uidannotation”工具负责将唯一ID附加到内容对象上,并强制执行对象移动/创建/删除时的规则。“portal_uidhandler”管理注册和访问唯一ID。

选择这种设计是为了允许用户仅替换功能的一部分,而无需理解整个系统。

唯一ID API

实现“IUniqueIdHandler”的“portal_uidhandler”是操作唯一ID的主要API。

用法

“portal_uidhandler”完全实现了 IUniqueIdHandler(IUniqueIdSet 用于注册/注销唯一ID,IUniqueIdQuery 用于查询,IUniqueIdBrainQuery 通过返回目录脑而不是对象来进行更有效的查询)。

当前实现 get/queryBrain 和 get/queryObject 不返回不可见对象(以及不可见对象的脑)。不可见对象是指由于过期/生效日期和/或用户角色而被 portal_catalog.searchResults 过滤掉的对象。

在应用程序中通常需要避免这种过滤。为此,请使用 unrestrictedGet/QueryBrain 和 unrestrictedGet/QueryObject,这将避免“None”结果。

查看接口。

CMFUid 的功能被 CMFDefault 的收藏内容类型用于跟踪链接对象。如果未安装 CMFUid,收藏内容类型将像以前一样工作。

更新 2007-03-30

注释代码已更新,以使用事件进行分配/删除 uids。这些设置的 live 在 portal_uidannotation 工具中。

默认行为是

  • 创建对象时不会分配 uids(假定其他代码负责此操作)

  • 当对象移动时,UID 不会更改

  • 当对象导入时,任何现有的 UID 都将被删除(这可以通过“remove_on_add”属性进行控制)

  • 当对象复制时,任何现有的 UID 都将被删除(这可以通过“remove_on_clone”属性进行控制)

更自然的行为是在创建时自动分配 UIDs。要启用此功能

  • 勾选“在添加时分配 UIDs”复选框(当内容添加或导入时将分配 uids,任何现有的 uid 将被替换)

  • 勾选“在复制时分配 UIDs”复选框(当复制对象时,它们将获得一个新的 uid,这将替换任何现有的 uid)

为了保留工具的原始行为,自动分配 UIDs 不是默认启用的 - 必须在 uidannotation 工具中将其打开。

基于对象创建/删除/移动事件,基于任何 IContentish 对象的行为。事件处理程序位于 UniqueIdAnnotation 工具中。


Products.CMFUid 变更日志

4.2 (2024-01-23)

  • 修正 DeprecationWarning: 从 zope.lifecycleevent 导入 IObjectAddedEvent

4.1 (2023-10-02)

  • 修改了 handleUidAnnotationEvent 的代码,以在使用它们之前检查注释工具和 UID 工具是否存在。此更改确保除非两个工具都可用,否则代码不会运行。

4.0 (2023-02-01)

  • 停止支持 Python 2.7、3.5、3.6。

3.5 (2022-12-16)

  • 修复针对 Zope 4 的测试中隐秘的构建配置错误。

  • 添加对 Python 3.11 的支持。

3.4 (2022-07-21)

  • 当一个对象的 UID 被设置后重新索引,只重新索引 cmf_uid 索引,而不是所有索引。

3.3 (2022-07-13)

  • 添加对 Python 3.10 的支持。

3.2.0 (2021-03-15)

  • 添加对 Python 3.9 的支持。

  • 改变包结构,将包代码移动到 src 子文件夹。

3.1.0 (2020-09-28)

  • 修复了 zope.component.interfaces.IObjectEvent 的弃用警告。

  • 取消对 python setup.py test 的支持,该命令在 Python 3.7+ 中已损坏。

3.0.2 (2020-06-24)

  • 清理和净化包以及测试配置。

  • 移除 DeprecationWarning: “InitializeClass 已弃用。请从 AccessControl.class_init 导入。” 现在与 Zope 5 兼容。

3.0.1 (2018-11-07)

  • 修复测试隔离问题 [petschki]

3.0 (2018-07-05)

2.3.0-beta (2012-03-21)

  • 确保转换的工具作为工具使用。

  • 至少要求 Zope 2.13.12。

2.2.1 (2010-07-04)

  • 处理 Zope 2.13 的弃用警告。

  • 修复标记错误(Chameleon 兼容性)

2.2.0 (2010-01-04)

  • 自 2.2.0-beta 版本以来没有变化

2.2.0-beta (2009-12-06)

  • 自 2.2.0-alpha 版本以来没有变化

2.2.0-alpha (2009-11-13)

  • 将 Zope 依赖项移至版本 2.12.0b3dev

  • 清理并规范化导入

    o 不要从 Globals 导入;而是使用真实的位置。

    o 使其他导入使用实际的源模块,而不是中间(例如,优先从 'AccessControl.SecurityInfo' 导入 'ClassSecurityInfo' 而不是从 'AccessControl' 导入)。

    添加缺失的 IUniqueIdHandler 工具注册。请参阅 https://bugs.launchpad.net/bugs/299058 .

  • UniqueIdHandlerTool:调用获取 UID 的对象的 reindexObject 属性,而不是 portal_catalog 的 reindexObject。这对于像门户网站这样的对象是必要的,这些对象永远不会被编目。

  • 移除了自动创建 UID 处理工具的索引和列的冗余和意外的代码。索引和列已经由默认的 CMFUid GenericSetup 配置文件创建。(http://www.zope.org/Collectors/CMF/472

  • 自 2.1.2-beta 版本以来没有变化

2.1.2 (2008-09-13)

  • 将 Zope 依赖项移至版本 2.10.4

2.1.2-beta (2008-08-26)

  • 完成从单体 CMF 包分解为其组件产品,这些产品作为 PyPI 上的 eggs 分发。

  • 测试:基于 ZopeTestCase.layer.ZopeLite 的 Base UidEventZCMLLayer。

  • UniqueIdHandlerTool:在错误消息中使用 %r 而不是 %s,这样我们就不会遇到非 ASCII 表示(例如文件和图像)。

2.1.1 (2008-01-06)

  • 没有变化

2.1.1-beta(2007-12/29)

  • 测试:如果有可用,从 ZopeLite 层派生测试层。

2.1.0 (2007-08-08)

  • 修复所有 componentregistry.xml 文件,以使用普通对象路径并删除和斜杠。GenericSetup 只支持注册位于站点根部的对象。

2.1.0-beta2 (2007-07-12)

2.1.0-beta (2007-03-09)

2.1.0-alpha2 (2006-11-23)

  • 将Zope依赖项升级到版本2.10.1

  • 修复了由于在Zope 2.10+中使用Z3页面模板而导致的测试中断。

  • 浏览器视图:添加了一些基于zope.formlib的表单。

  • 测试:添加了用于设置ZCML的测试层。

2.1.0-alpha (2006-10-09)

  • 皮肤:更改了翻译后的portal_status_messages的编码。现在使用getBrowserCharset与Five表单友好地交互。必须更新自定义的setRedirect和getMainGlobals脚本。

  • 配置文件:所有配置文件现在都通过ZCML进行注册。

  • ZClasses:移除了对ZClasses的不维护支持。将‘initializeBases*’方法标记为已弃用。

  • 内容:为所有内容类添加了IFactory实用工具。现在默认使用它们而不是旧的构造函数方法。

  • 内容:现在所有内容类都通过ZCML进行注册。ContentInit仍然用于注册旧式构造函数。

  • 设置处理器:移除了对CMF 1.5 CMFSetup配置文件的支持。

早期版本

关于2.1.0-alpha版本之前的完整更改列表,请参阅CMF-2.1分支上的HISTORY.txt文件:http://svn.zope.org/CMF/branches/2.1/HISTORY.txt?view=auto

项目详情


下载文件

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

源代码发行版

Products.CMFUid-4.2.tar.gz (23.9 kB 查看哈希值)

上传时间 源代码

构建发行版

Products.CMFUid-4.2-py3-none-any.whl (25.5 kB 查看哈希值)

上传时间 Python 3

由以下支持

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