【问题标题】:Creating a working copy for Plone 4 custom content types为 Plone 4 自定义内容类型创建工作副本
【发布时间】:2013-05-08 10:08:47
【问题描述】:

我在我的包中创建了一个自定义的 Plone 内容类型,即my.product

我需要集成工作副本支持:以便“已发布”文档(在我的情况下为已发布内容类型)在编辑时保持在线。基本上,我想利用plone.app.iterate 提供的“工作副本支持(迭代)”来实现what is explained here。这将使我能够check-in/check-out 我的更改。

这在 Plone 4 中是否可以使用 Archetypes 自定义内容类型?如果是的话怎么办?

【问题讨论】:

  • 自定义原型类型与库存类型没有区别;这应该只是工作™。
  • 在我的情况下它没有。我添加了一个页面,我可以清楚地看到 Actions 下拉列表下的选项。但不是我的自定义类型。我可以看到敏捷类型(see here)有一种解决方法,我想知道这是否同样适用于自定义类型。

标签: workflow plone


【解决方案1】:

我在my.product/my/product/profiles/default 文件夹中添加了以下两个文件,它似乎可以工作:

diff_tool.xml

<?xml version="1.0"?>
<object>
    <difftypes>
        <type portal_type="MyCustomType">
            <field name="any" difftype="Compound Diff for AT types"/>
        </type>
    </difftypes>
</object>

repositorytool.xml

<?xml version="1.0"?>
<repositorytool>
    <policymap>
        <type name="MyCustomType">
            <policy name="at_edit_autoversion"/>
            <policy name="version_on_revert"/>
        </type>
    </policymap>
</repositorytool>

【讨论】:

  • 这也可以通过类型控制面板配置TTW。
【解决方案2】:

我从未使用过 plone.app.iterate,但这是解决问题的通用方法。

操作由 plone.app.iterate GenericSetup 配置文件安装。您可以在此处查看操作:

https://github.com/plone/plone.app.iterate/blob/master/plone/app/iterate/profiles/default/actions.xml

注意 *available_expr* 行,它告诉何时显示操作。它指向具有条件的助手视图。

这里定义了视图

如果内容项可存档,则对其执行的检查

故障很可能来自if not interfaces.IIterateAware.providedBy 条件。您的自定义内容必须声明此接口。但是,您可以确认这一点,在 checkin_allowed(self) 中放置一个 pdb 断点,然后逐行执行,看看您的内容类型会发生什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    相关资源
    最近更新 更多