2013-05-08 129 views
2

我在我的包中创建了一个自定义的Plone内容类型,即my.product为Plone 4自定义内容类型创建工作副本

我需要集成工作副本支持:以便“正在发布”的文档(在我的情况下是发布的内容类型)在编辑期间保持联机状态。基本上,我想利用plone.app.iterate提供的'Working Copy Support(Iterate)'来实现what is explained here。这将使我有能力对check-in/check-out进行更改。

这是可能在Plone 4与自定义内容类型使用Archetypes?如果是的话,会怎么做呢?

+0

自定义原型类型没有什么不同从库存类型;这应该Just Work™。 – 2013-05-08 10:15:26

+0

在我看来并没有。我添加了一个页面,我可以清楚地看到“操作”下拉列表下的选项。但不是我的自定义类型。我可以看到有一个解决敏捷类型([见这里](https://github.com/plone/plone.app.stagingbehavior)),我想知道是否适用于自定义类型。 – Frankline 2013-05-08 11:22:48

回答

2

我添加了以下两个文件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> 
+0

也可以通过类型控制面板配置TTW。 – vangheem 2013-05-09 19:19:30

1

我从来没有使用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 *告诉何时显示动作与否。它指向帮助者观点与条件。

的观点在这里被定义

那些内容项,如果它是archiveable执行的检查

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