2010-12-31

Plone的工作流

工作流是完成一项任务的业务流程。比如,写博客时,先保存草稿,待修改满意再发布。这个简单的工作流有两个状态:草稿,发布。有一个转换:从草稿状态到发布状态。在草稿状态时,只有博主能够查看,修改,同时可以随时发布。在发布状态,博主可以更新,删除,任何人都可以浏览。 从上面的例子可以看出,工作流由两部分组成:状态和转换。 而每个状态下又包括不同用户的访问权限控制。 其实工作流可以看做是一个状态转移图。 Plone中的对象操作链就是由工作流管理的。关联工作流到特定的内容类型是由portal_workflow管理的。它包含了protal的工作流的定义。 在Plone里,当创建一个内容对象后,它的状态是“保密”,同时在下拉菜单里会看到两个转换:“发布”,“提交发布”。选择“提交发布”后,状态就变成“待审”,或者选择“发布”,状态就变成“已发布”。这是Plone的默认工作流。 要查看或修改Plone的工作流,在Plone控制面板中选择“类型”,可以看到当前的默认工作流是简单发布工作流(simple publication workflow)。

简单发布工作流

简单发布工作流有三个状态:
  • 保密(private)
  • 待审(pending)
  • 已发布(published)
四个状态转移:
  • 提交(submit)
  • 发布(publish)
  • 打回(reject)
  • 召回(retrac)
创建新的内容对象时初始状态为保密状态。 在保密状态下,内容创建者可以修改内容,提交内容给审核者,或者直接发布。发布后创建者仍可修改。 提交内容后,对象状态变为“待审”。这时创建者可以“召回”,即取消提交,而审核者会在工作台的审批清单里看到这个请求,审核者可以“发布”,也可以“打回”。待审状态时文件不可修改。 创建者“召回”或审核者“打回”,文件状态都恢复到“保密”。 审核者“发布”待审对象,则对象状态变为“已发布”。这时任何人都可以看到了。 简单发布工作流的状态图如下所示:

其他工作流简介

在“新的工作流”下拉菜单里可以选择使用其他工作流。 Plone还提供了5种工作流:
  • 文件夹社区工作流(folder_workflow)
  • 文件夹内部工作流(intranet_folder_workflow)
  • 内外网工作流(intranet_workflow)
  • 单一状态工作流(one_state_workflow)
  • 社区工作流(plone_workflow)

文件夹社区工作流

有三个状态:
  • 公开草案(visible)
  • 保密(private)
  • 已发布(published)
四个状态转换:
  • 隐藏(hide)
  • 发布(publish)
  • 召回(retract)
  • 变为草案(show)
创建内容后初始状态为公开草案。此后内容拥有者可以隐藏内容使变为保密状态,或者发布草案。 保密状态时可以发布,可以变为草案。 已发布状态时可以召回,变为公开草案,亦可以隐藏,变为保密状态。 没有待审状态,创建者可以直接发布而不需审核。 状态转移图如下:

文件夹内部工作流

文件夹内部工作流比较简单,只有两种状态,通常和内外网工作流一起使用:
  • 内部草案(internal)
  • 保密(private)
两个状态转换:
  • 隐藏(hide)
  • 内部显示(show_internally)
创建内容后初始状态为内部草案。此后内容拥有者可以隐藏内容使变为保密状态。 保密状态下可以内部显示,从而变为公开草案。 状态图如下:

内外网工作流

内外网工作流比较复杂,有5种状态:
  • 内部草案(internal)
  • 保密(private)
  • 待审(pending)
  • 内部发布(internally_published)
  • 公开(external)
同时有7种状态转换:
  • 隐藏(hide) 成员使其变为保密
  • 公开发布(publish_externally) 审核者使外部可见
  • 内部发布(publish_internally) 审核者内网发布
  • 驳回(reject) 打回
  • 收回(retract) 收回提交
  • 内部显示(show_internally) 转到内部草案状态
  • 提交(submit) 提交送审
创建内容后初始状态为内部草案,此时可以隐藏到保密状态,可以提交送审,管理员可以直接内部发布。 保密状态时可以内部显示为内部草案,可以内部发布。 待审状态时可以内部发布,可以公开发布,可以打回,可以被创建者召回。 内部发布状态时可以打回或被创建者召回到内部草案。可以公开发布。 公开状态时,内容创建者可以召回到内部草案状态。 内外网工作流的状态转移图如下所示:

单一状态工作流

故名思议,只有一种状态:
  • 已发布(published)
不多说。

社区工作流

社区工作流,又叫Plone工作流,有四个状态:
  • 公开草案(visible)
  • 保密(private)
  • 待审(pending)
  • 已发布(published)
六种状态转换:
  • 隐藏(hide)
  • 发布(publish)
  • 驳回(reject)
  • 召回(retract)
  • 变为草案(show)
  • 提交(submit)
创建内容后初始状态为公开草案。 可以隐藏使变为保密状态,可以提交送审,可以直接发布。 保密状态时,只能变为公开草案。 待审状态时可以隐藏到保密状态,可以驳回或召回到公开草案状态,可以发布。 已发布状态时可以驳回或召回到公开草案状态。 内容可以被创建者或管理员提交待审。审核者可以发布或打回内容,而内容拥有者也可以收回内容。在待审期间,任何人都可以阅读。 发布后,只有管理员才能收回。 状态图如下:
blog comments powered by Disqus