【发布时间】:2013-08-01 18:39:38
【问题描述】:
我正在处理敏捷内容类型中的复杂验证,该验证应在工作流转换时检查多个字段之间的依赖关系 - 我希望它在将内容从“私有”发送到“时触发的 SimplePublicationWorkflow 中工作”待定”。
我已经为 IBeforeEvent 注册了一个事件侦听器并将其连接起来 - 但是除了引发异常之外,没有任何操作可以阻止转换的发生。 (如果您在那里引发异常,它不会被捕获,并且用户会看到错误页面而不是自定义消息)。
那么,在现代 Plone 中验证过渡的推荐方法是什么?我遇到了建议在转换的 Guard 表达式上添加要调用的外部方法的文档 - 但我不想使用外部方法,如果可能的话,我想保留默认工作流程。创建自定义选项是一种选择,提供了一种干净的方式来进行检查。
【问题讨论】:
-
嗯。也许诀窍是首先不允许过渡而不是中止它?也许在编辑内容项时对内容项设置权限,然后将工作流转换与权限联系起来?