Silverstripe Advancedwrokflow,DataObject未显示按钮

时间:2015-03-02 19:06:04

标签: silverstripe

我正在使用SilverStripe(版本3.1.6)和高级工作流插件。

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

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

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

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

3 个答案:

答案 0 :(得分:1)

我已经在这个模块上做了很多工作,但很少做任何与工作流和DataObjects相关的工作 - 但是 - 我记得你需要让自定义DataObjects"工作流感知" ,请在mysite/_config/config.yml

中尝试以下操作
MyCustomeDataObject:
  extensions:
    - WorkflowApplicable

...然后运行dev/build

答案 1 :(得分:1)

如果你已经覆盖了DataObject中的getCMSFields()方法但是你没有使用scaffolding(通过调用fields = parent :: getCMSFields()),你需要确保调用'updateCMSFields'以便WorkflowApplicable扩展可以做它的事

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

答案 2 :(得分:1)

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

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

这些更改现在是主分支的一部分,因此我假设没有其他人会遇到此问题。