Plone/Zope对于内容类型使用两种工作流程,我可以在状态栏中显示与用户角色相关的当前状态/状态吗?

问题描述:

我有两个我在Zope Manager中创建的工作流程:A_Workflow,B_Workflow和我将它分配给内容类型'contract'。Plone/Zope对于内容类型使用两种工作流程,我可以在状态栏中显示与用户角色相关的当前状态/状态吗?

A_Workflow具有两种状态: 待定甲批准(初始) A批准

有用于批准(approve_a),其过渡到A批准并用于回缩(retract_a)过渡至挂起A过渡的过渡只有A_Manager可以执行所需的许可。

B_Workflow具有两种状态: 待定乙批准 B核定

有用于批准(approve_b)过渡(初始),其过渡到B核定和缩回(retract_b)过渡过渡至等待乙仅通过B_Manager可以执行所需的许可即可获得批准。

贡献者创建合同,第一个状态为待审批。 我可以看到,当我以A_Manager身份登录并以B_Manager身份登录时,可以使用适当的转换。但是,尽管B_Workflow的状态发生了变化,但B_Manager只能看到A_Workflow的状态(当状态为待定B审批时,审批B显示,状态为B审批时收回B显示)

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

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

这个特性或多或少是隐藏和未使用的(尽管它有效),但是Plone UI并不以任何方式支持它:你可以依靠它来提高安全性,但只有“主”(首先在链中) Plone UI使用工作流程。

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

注:自定义菜单是不是一个复杂的任务,但你需要一些样板喜欢使用z3c.unconfigure或overrides.zcml

查看示例(此为“添加新项”菜单)在这里:https://github.com/keul/collective.factorymenu/tree/master/src/collective/factorymenu

我们实际上对项目实际使用链式工作流。一个常见的用例是拥有第二个工作流程来控制项目的“精选”状态。通过这种方式,内容提供者可以要求提供某个项目,但编辑/审阅者可以批准该项目。

我们有一款产品允许工作流下拉显示所有链式工作流及其转换。我刚出版的这PyPI中释放:

https://pypi.python.org/pypi/sixfeetup.workflow.chained

但是你可以在GitHub的回购报告问题:

https://github.com/sixfeetup/sixfeetup.workflow.chained

让我们知道,你的作品了。

+2

惊人!感谢分享! –