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)
创建内容后初始状态为公开草案。 可以隐藏使变为保密状态,可以提交送审,可以直接发布。 保密状态时,只能变为公开草案。 待审状态时可以隐藏到保密状态,可以驳回或召回到公开草案状态,可以发布。 已发布状态时可以驳回或召回到公开草案状态。 内容可以被创建者或管理员提交待审。审核者可以发布或打回内容,而内容拥有者也可以收回内容。在待审期间,任何人都可以阅读。 发布后,只有管理员才能收回。 状态图如下:

Related Posts

Go 语言解析 git config 2019年03月17日 Comments
二分查找捉虫记 2016年02月29日 Comments
做一个有品位的程序员 2015年12月23日 Comments
Please enable JavaScript to view the comments powered by Disqus. blog comments powered by Disqus

AltStyle によって変換されたページ (->オリジナル) /