为Plone检查/签入预发布版本
项目描述
摘要
iterate 是一个 Plone 插件,允许用户利用检入/检出流程进行内容编辑。它集成在版本控制、锁定中,并利用 Zope 技术如适配器和事件来实现易于定制的功能。
特性
利用 cmf 版本控制进行版本控制
使用 zope dav 锁定
通过适配器提供策略的插件式行为
通过事件观察行为
对 archetypes 引用的专门处理
与 Plone 用户界面的简单、干净集成
用例
iterate 被设计用来解决/启用以下用例。
协作文档编辑场景
工作组或个人正在编辑文档,能够检出到文档并锁定它,允许进行编辑周期,无需担心覆盖,并且有版本审计轨迹。
CMS 上的发布/修改/审查周期
内容管理中一个常见的主题是发布一个网络文档,然后需要修改它但不改变已发布的内容,直到修改后的文档完成审查周期。
通过用户界面进行 iterate 生命周期
iterate 主要通过操作菜单集成到 Plone 用户界面中。它向菜单中添加了三个条件动作:检出、检入和取消检出。
检出表单
在此表单中,用户被要求选择将当前内容检出到哪个位置,检出词汇可以通过模板定制覆盖,目前是当前文件夹和用户的个人文件夹。如果内容尚未进行版本控制,则在进行检出之前应用版本控制并创建一个新的版本。适配器用于执行检出机制,并生成一个具有基线(起源)和检出作为属性的物体生命周期事件。适配器负责将内容的副本复制到检出位置并对起源内容加锁。此表单和动作是否在特定内容上激活取决于为此内容找到的 iterate 策略适配器。
检出有一些系统附加属性,如版本控制和工作流。它们可以独立于基线进行版本控制,只有在检入时,最新版本的变化才合并到基线。它们可以经历与基线内容不同的单独的工作流。(此功能需要一些定制,请参阅 docs/workflow.rst)。
检出状态表单
视觉上,检出通过一个额外的文档图标(在 sendto 和 rss 链接旁边)区分。单击此图标将转到检出状态页面。该页面允许查看有关检出的信息,例如检出时间和检出者。
检入表单
用户被要求输入检入消息。在检入时,工作副本合并到基线,并创建基线的新版本,并解除基线的锁定。
取消检出
将显示确认对话框,如果取消检出,则工作副本将被销毁,基线将被解锁。
致谢
Kapil Thangavelu <hazmat@objectrealms.net>
Benjamin Saller <bcsaller@objectrealms.net>
来自 tortoisesvn 项目(http://tigris.org)的图标
许可证
GPL,请参阅 license.txt 以获取详细信息
变更日志
6.0.0 (2024-06-26)
重大更改
移除带有 id plone.app.iterate 的旧 GenericSetup 配置文件。请参阅 问题 99。[maurits] (#99)
5.0.5 (2024-02-27)
错误修复
从高级视图中隐藏 to1000 以创建新的 Plone 网站 [gforcada] (#121)
5.0.4 (2024-02-21)
错误修复
将视图小部件样式适配到 Plone 6 [pbauer] (#95)
修复对文件夹式内容工作副本的关联字段处理。[pbauer] (#118)
使用包权限保护视图和工具栏操作。[pbauer] (#120)
5.0.3 (2024-01-19)
内部
更新配置文件。[plone 开发者] (cfffba8c)
5.0.2 (2023-04-14)
内部
更新配置文件。[plone 开发者] (5623f8b3)
5.0.1 (2023-03-22)
错误修复
在 Plone 6 中使用合适的操作图标。[maurits] (#60)
5.0.0 (2023-03-14)
重大更改
取消对 Plone 5.2、Python 2、Archetypes 的支持。移除了 plone.app.stagingbehavior 的检查和警告。版本 5 仅适用于 Plone 6。[maurits] (#1)
4.0.3 (2022-05-14)
错误修复
修复了调用 reindexObject 中的一个拼写错误 (#101)
4.0.2 (2021-09-08)
错误修复
修复了发布行为字段在基线和工作副本中具有不同值的问题 [ericof] (#97)
4.0.1 (2021-06-29)
错误修复
修复了容器检查/检出过程,因为检出时留下了一个“重置”注释(pos),导致破坏了部分视图 [sneridagh] (#93)
4.0.0 (2021-06-25)
新功能
添加对 DX 文件夹内容的适当支持 [sneridagh] (#92)
3.3.16 (2021-06-14)
错误修复
如果某些自定义代码为 Products.Archetypes 提供别名,则不会破坏。[#85]
遵循 black 和 pep8 规范 [sneridagh] (#88)
通过触发 ObjectModifiedEvent 事件来更新 Check-In 工作副本上的关系,使用 black 和 flake8 格式化。[2silver] (#89)
3.3.15 (2020-09-07)
错误修复
当 wc 被移除时,删除基线和工作副本之间的关系。[frapell] (#77)
修复了 ObjectEvent 和 IObjectEvent 的弃用警告。将所有代码从 profiles.py 移至 setuphandlers.py,以避免与 profiles 目录混淆。[maurits] (#3130)
3.3.14 (2020-04-20)
错误修复
一些包装更新。[#1]
3.3.13 (2019-10-12)
错误修复
显式加载依赖项的 zcml,而不是使用 includeDependencies。[maurits] (#2952)
3.3.12 (2019-06-27)
错误修复
添加缺少的 i18n:translate 调用 [erral] (#73)
3.3.11 (2019-05-04)
错误修复
使删除版本行为不那么严格(命名与点号)[iham] (#71)
3.3.10 (2018-10-31)
错误修复
当 AT 没有安装时,避免测试设置错误 [davisagli]
3.3.9 (2018-09-23)
错误修复
一些 Python 3 修复。[pbauer]
3.3.8 (2018-06-18)
错误修复
Python 3 兼容性。[pbauer]
仅在安装 Archetypes 时测试 Archetypes 支持。[davisagli]
3.3.7 (2018-02-05)
错误修复
在一般升级步骤中使用 get_installer。[maurits]
3.3.6 (2017-11-24)
错误修复
修复 #54:取消原始的检出会删除原始文件。[jensens]
3.3.5 (2017-09-08)
错误修复
不再依赖于 Products.Archetypes。 (第 3 部分) [tomgross]
3.3.4 (2017-08-27)
错误修复
不再依赖于 Products.Archetypes。 (第 2 部分) [tomgross]
移除对 ZODB3 的显式依赖。[tomgross]
3.3.3 (2017-05-31)
错误修复
删除了“更改门户事件”权限 [kakshay21]
防止使用 name=None 的 queryUtility。[pbauer]
3.3.2 (2017-03-23)
新功能
为 diff 视图添加每个字段标签,修复视觉 diff 链接并添加断点 [frapell]
错误修复
将 IIterateSettings.checkout_workflow_policy 改为 ASCIILine,以满足 Products.CMFWorkflowPolicy 的要求。
3.3.1 (2017-02-12)
错误修复
修复 Zope 4 中的测试。[davisagli]
3.3.0 (2017-01-02)
新功能
不再依赖于 Products.Archetypes。如果 Archetypes 存在,它仍然注册适配器。[jensens]
错误修复
不再使用 unittest2。[jensens]
清理:isort、zca 装饰器等。[jensens]
更多清理。[gforcada]
3.2.3 (2016-11-10)
错误修复
在 Python 文件上添加编码标题。[gforcada]
在 Plone 安装(高级)表单中隐藏卸载配置文件。[gforcada]
3.2.2 (2016-09-14)
错误修复
在制作检出时删除损坏的引用。修复了问题 30。[maurits]
3.2.1 (2016-08-17)
错误修复
使用 zope.interface 装饰器。[gforcada]
3.2.0 (2016-05-26)
新功能
添加了卸载配置文件。[maurits]
错误修复
删除了弃用的 actionicons.xml。[maurits]
3.1.7 (2016-05-15)
错误修复
没有通过 GET 启用检出的特殊情况 [gotcha]
3.1.6 (2016-04-26)
修复
最小化代码清理。[gforcada]
3.1.5 (2016-03-03)
新功能
plone.app.iterate 依赖于 GenericSetup >= 1.8.2 以使用 registerProfile 上的 post_handler。[iham]
将默认 GenericSetup 配置文件命名为“默认”。“plone.app.iterate”也存在以保持兼容性。[iham]
为 GS 配置文件“plone.app.iterate”添加弃用警告。[iham]
修复
不再需要注册为 Zope2 产品。[iham]
一些小的 pep8 清理。[iham]
3.1.4 (2015-11-16)
修复
在检查文档时保持默认页面设置。[maurits]
3.1.3 (2015-09-27)
修复 dexterity 检出时的元数据存储 [vangheem]
3.1.2 (2015-09-20)
修复了测试,使其通过最近的 plone.app.content 更改,该更改需要 cmf.ModifyPortalContent 权限来访问内容状态历史页面。[maurits]
3.1.1 (2015-08-20)
检查对象是否没有迭代策略。这解决了迭代在门户根目录上导致工具栏错误的问题。[vangheem]
3.1.0 (2015-07-18)
将plone.app.stagingbehavior合并到plone.app.iterate中,不包含行为实现。这是为了支持Plone 5的迭代。[vangheem]
不要在对象上移除acquisition以进行getToolByName调用。[tomgross]
3.0.1 (2015-03-12)
以zcml/z3风格添加权限名称,并在模块加载时显式加载权限设置,否则默认角色设置不正确。[jensens]
将测试迁移到plone.app.testing。[bogdan, tomgross]
3.0.0 (2014-10-23)
在模板中从门户消息中删除DL。[khink] https://github.com/plone/Products.CMFPlone/issues/153
2.1.13 (2014-04-16)
修复测试以与auto csrf一起工作。[vangheem]
修复与最新plone.protect相关的测试。[vangheem]
2.1.12 (2014-02-19)
在使用placeful工作流时,可以隐藏从检查出内容时用户看到的信息消息,请参阅:[anthonygerrard] https://dev.plone.org/ticket/13852
将“锁定”标签替换为“警告”标签。[rristow]
2.1.11 (2014-01-27)
将锁定超时设置为MAX_TIMEOUT以避免10分钟后基线自动解锁。[parruc]
2.1.10 (2013-03-05)
修复了在父级富文本字段中链接的对象的工作副本检查入时出现的错误。[radekj] https://dev.plone.org/ticket/13462
2.1.9 (2013-01-13)
尚未有任何更改。
2.1.8 (2012-10-03)
在检查入时取消标记基线和工作副本,以便正确取消标记dexterity内容。[cewing]
2.1.7 (2012-08-04)
允许在ZCML中定义并覆盖浏览器视图模板。[rpatterson]
2.1.6 (2012-06-29)
从zope.lifecycleevent导入事件。[hannosch]
修复了父文件夹工作副本定位器中的权限检查问题。[mitchellrj]
2.1.5 (2012-03-16)
不要将IIterateAware声明为Archetypes的IReferenceable的扩展,因为还有其他实现(如Dexterity的实现)不使用Archetypes引用。[davisagli]
确保在检查出内容时应用工作副本工作流的权限,修复了http://dev.plone.org/ticket/12780。[anthonygerrard]
2.1.4 (2011-11-24)
在将文件夹检查回时保留内容内容的UID,这防止了编辑器中通过UID的链接中断。[rossp]
修复了将项目添加到已检查出的文件夹后检查入时不可见的问题。修复了#12257。[rossp]
在检查回时保留从最初检查出的项的文件夹顺序位置。[rossp]
允许检查出内容的用户也能看到检查出信息,这样贡献者可以轻松地看到他已检查出页面。[vangheem]
2.1.3 (2011-08-31)
从diff.pt中删除恶意div标签。这解决了http://dev.plone.org/plone/ticket/11249。[danjacka]
2.1.2 - 2011-06-02
为Plone 4.1兼容性包含Products.CMFCore。[thomasdesvenain, WouterVH]
2.1.1 - 2011-05-13
修复了我们的订阅者始终期望在策略中存在coci_created属性的问题。[erico_andrei]
添加MANIFEST.in。[WouterVH]
查看工作副本或检查出的原始内容不再引发AttributeError。无论如何,我们记录一个警告,因为Manager应该对此做些什么。修复了http://dev.plone.org/plone/ticket/8723。[glenfant]
2.1 - 2011-02-25
没有更改。
2.1a2 - 2011-02-14
修复了合并内容引用中出现陈旧的目录条目的问题。[maurits]
修复了_doAddUser的轻微测试失败。[maurits]
2.1a1 - 2011-01-18
测试Products.CMFPlone版本以设置默认权限,保持4.0兼容性 - 下一个版本可以是2.0.1。[elro]
添加autoinclude入口点。[elro]
更新Plone 4.1的站点管理员角色的权限默认值。[elro]
2.0 - 2010-07-18
修复了信息视图小部件仅显示日期而不是时间的问题。问题是由于ulocalized_time更改了其参数顺序而引入的。这关闭了http://dev.plone.org/plone/ticket/10759。[vincentfretin]
将许可证更新为仅GPL版本2。[hannosch]
为内容div添加id="content"。否则使用deliverance进行主题化会变得困难。[do3cc]
2.0b2 - 2010-06-03
添加了重新安装产品的天真升级步骤。[davisagli]
通过在操作上设置icon_expr来设置动作图标,以避免在Plone 4中的弃用警告。[davisagli]
2.0b1 - 2010-02-17
声明所有包依赖。[hannosch]
更新了diff.pt以遵循最近的标记约定。参考#9981 [spliter]
1.2.5 - 2010-01-03
修复了diff.pt中的未定义current_page_url变量。这解决了http://dev.plone.org/plone/ticket/9819。[hannosch]
1.2.4 - 2008-12-21
添加了profiles/default/metadata.xml(版本120:在1.1分支上需要任何配置更改时留下足够的空间)。[maurits]
避免对快速安装程序的测试依赖。[hannosch]
使用我们自己的PloneMessageFactory。我们不再依赖于CMFPlone。[hannosch]
指定包依赖。[hannosch]
使测试与默认内容无关。[hannosch]
1.2.3 - 2008-11-14
修复控制视图中的假设:并非每个上下文对象都是IReferenceable。这解决了http://dev.plone.org/plone/ticket/8737 [nouri]
1.2.2 - 2008-11-13
第n次修复动作条件;这次是一个过于雄心勃勃的“取消检查出”权限。这解决了http://dev.plone.org/plone/ticket/8735 [nouri]
1.2.1 - 2008-11-11
细化从1.2.0的权限修复并使测试再次通过
在原始上检查出时不需要修改门户内容(MPC)权限,这在1.2.0的修复中被省略。
在取消检查出时,只需在原始副本上要求MPC,而不是在原始副本上。[nouri]
修复了缺失的国际化(#8608,感谢Vincent Fretin) [encolpe]
1.2.0 - 2008-10-24
允许没有修改内容权限(但有迭代检查出权限)的用户检查出项目,并且只有在他们有修改内容权限时才允许他们再次检出。[nouri]
1.1.5 - 2008-08-18
修复了subscribers/workflow.py中的拼写错误。这解决了https://dev.plone.org/plone/ticket/8035。[dunlapm]
添加了状态信息的国际化。这解决了http://dev.plone.org/plone/ticket/8022的一部分。[naro]
1.1.0 - 2008-04-20
修复了test_iterate.py中的错误测试,该测试依赖于默认工作流的语义。[optilude]
修复了i18n标记并更新了一些消息。这解决了http://dev.plone.org/plone/ticket/7958。[hannosch]
更新了模板中的i18n:domain为plone域。不需要iterate域。[hannosch]
使用README.txt和HISTORY.txt作为包的详细描述。[wichert]
从__init__中删除了不需要的initialize方法。[wichert]
1.0 - 2007-08-17
第一个版本
项目详细信息
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。