如何在Plone中直接发布容器类型的子项?

2024-04-27 22:59:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Plone中有一个自定义的folderish Dexterity内容类型。它只能有子文档。我希望这些文档在创建时直接发布。在

我可以通过为文档类型设置适当的工作流来轻松实现这一点,但这会影响我网站中的每个文档。我只想直接发布容器类型中的那些。在

我想到了两个选择:

自定义页

基本上只创建stock文档类型的一个副本,并将其工作流设置为只有published状态的东西。在

事件

为文档添加IObjectAdded事件,检查新文档的父级是否为我的容器类型,并使用python代码手动发布。在

听起来都不太好。我还有其他选择吗?在


Tags: 文档类型内容网站状态plonestock副本
3条回答

在使用的工作流中创建一个新的自动转换,该工作流具有以下保护:

python:container.meta_type == 'ATFolder'

只有当父对象是标准的“Folder”类型(注意元类型和类型名不一样)时才会触发。在

这样做的缺点是,它将在创建过程中较早地被触发,因此如果用户没有足够的权限完成对已发布对象的创建,则会看到一条错误消息。在

如果这不符合你想要的,我想这是你最接近的赌注。在

您只需要“工作流策略支持(CMFPlacefulWorkflow)”产品(它是Plone的默认部分):

Add in Plone the capability to change workflow chains for types in every object.

可以对单个文件夹或该文件夹及其下的所有文件夹设置工作流。在

使用事件订阅服务器触发自动工作流转换(例如,通过订阅IObjectInitializedEvent并检查IYourDexterityFolderishType.providedBy(aq_parent(obj))-请参见plone community developer docs

相关问题 更多 >