Silverstripe Advancedwrokflow 与 DataObject 不显示按钮

Silverstripe Advancedwrokflow with DataObject not showing button

我正在使用带有 advancedworkflow 插件的 SilverStripe(版本 3.1.6)。

我的网站主要建立在数据对象上。 我已经在 .yml 文件中分配了对象和模型管理员,如文档中所述:

MyObject:
    extensions:
        - WorkflowApplicable
MyObjectAdmin:
    extensions:
        - AdvancedWorkflowExtension

我还在对象的工作流选项卡中分配了工作流。 我正在使用模板审查和批准工作流程。

虽然我在编辑页面时看到了启动工作流的按钮,但该按钮并未针对数据对象显示。我是否需要在对象级别添加代码,或修改模板工作流程以处理数据对象? 谢谢!

我在这个模块上做了很多工作for/on,但很少做任何关于工作流和数据对象的工作——但是——我确实记得你需要制作你的自定义数据对象"Workflow aware",试试mysite/_config/config.yml

中的以下内容
MyCustomeDataObject:
  extensions:
    - WorkflowApplicable

...然后 运行 dev/build.

如果您已覆盖 DataObject 中的 getCMSFields() 方法但未使用脚手架(通过调用 fields=parent::getCMSFields()),则需要确保调用 'updateCMSFields' WorkflowApplicable 扩展可以做它的事情

public function getCMSFields(){
    $fields = new FieldList();
    ...
    $this->extend('updateCMSFields', $fields);
    return $fields;
}

我很高兴地宣布,编写此插件的 SilverStripe 团队解决了这个问题(在同一天!!!)

代码提交信息请查看: https://github.com/silverstripe-australia/advancedworkflow/commit/38c5480e6b5c9a6856938ca774f2caf2790a788d

更改现在是 master 分支的一部分,所以我认为没有其他人会遇到这个问题。