Plone/Zope使用内容类型上的两个工作流,我可以显示与用户相关的当前状态吗';s在状态栏中的角色?

Plone/Zope使用内容类型上的两个工作流,我可以显示与用户相关的当前状态吗';s在状态栏中的角色?,plone,zope,Plone,Zope,我在Zope Manager中创建了两个工作流:A_工作流、B_工作流,并将其分配给内容类型“合同” _工作流有两种状态: 待批准(初始) 批准的 有一个用于批准的转换(approve_a)转换为已批准的,还有一个用于收回的转换(retract_a),通过只有a_经理才能执行的所需权限转换为待批准的 B_工作流有两种状态: 待B批准(初始) B批准 有一个用于批准的转换(approve_b)转换为已批准的b,还有一个用于收回的转换(retract_b)转换为待批准的b,通过所需的权限,只有b_经

我在Zope Manager中创建了两个工作流:A_工作流、B_工作流,并将其分配给内容类型“合同”

_工作流有两种状态: 待批准(初始) 批准的

有一个用于批准的转换(approve_a)转换为已批准的,还有一个用于收回的转换(retract_a),通过只有a_经理才能执行的所需权限转换为待批准的

B_工作流有两种状态: 待B批准(初始) B批准

有一个用于批准的转换(approve_b)转换为已批准的b,还有一个用于收回的转换(retract_b)转换为待批准的b,通过所需的权限,只有b_经理才能执行

参与者创建了一个合同,第一个状态正在等待批准。 当我以A_经理身份登录和以B_经理身份登录时,我可以看到相应的转换可用。但是,B_经理只能看到a_工作流的状态,尽管B_工作流的状态正在更改(当状态为“待定B批准”时显示“批准”B,当状态为“批准”时显示“收回”B)


如果这是一个尴尬的问题,我深表歉意,但是否可以在状态栏中显示正确的状态?如果是,我该怎么办?

据我所知,您似乎使用了一个工作流链(分配给一个内容类型的两个或多个工作流)

此功能或多或少是隐藏的,未使用过(尽管它可以工作),但Plone UI不以任何方式支持它:您可以依赖它来确保安全性,但Plone UI只使用“主”(链中的第一个)工作流

要查看这两种状态,您需要自定义Plone工作流菜单。 只是猜测:提供一个覆盖的新菜单

注意:自定义菜单不是一项复杂的任务,但您需要一些样板文件,如使用z3c.unconfigure或overrides.zcml


请参见此处的一个示例(“添加新项目”菜单):

我们实际上定期在项目中使用链接工作流。一个常见的用例是有第二个工作流来控制项目的“特色”状态。这样,内容贡献者可以请求对某个项目进行专题介绍,但编辑/审阅者可以批准专题介绍

我们有一个产品,它允许“工作流”下拉列表显示所有链接的工作流及其转换。我刚刚向PyPI发布了一个版本:

但您可以在github回购协议上报告问题:


让我们知道这是否适合您。

太棒了!谢谢分享!