Successfully reported this slideshow.
Your SlideShare is downloading. ×

Yes It Can: Leverage Workflow in Plone to Bring Business Process Online

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 176 Ad

Yes It Can: Leverage Workflow in Plone to Bring Business Process Online

One of the aspects of Plone that sets it above most other Content Management Systems is the DC Workflow package. We've all seen it in use as we publish content, but have we thought about how it can help us to implement business practices and policies as online systems?

One of the aspects of Plone that sets it above most other Content Management Systems is the DC Workflow package. We've all seen it in use as we publish content, but have we thought about how it can help us to implement business practices and policies as online systems?

Advertisement
Advertisement

More Related Content

Similar to Yes It Can: Leverage Workflow in Plone to Bring Business Process Online (20)

Advertisement

Recently uploaded (20)

Yes It Can: Leverage Workflow in Plone to Bring Business Process Online

  1. 1. Yes It Can! Learning to Leverage Plone’s Workflow to Bring Business Practices Online Cris Ewing UW Radiology Web Services PSE2010
  2. 2. Plone’s Greatest Strength
  3. 3. Often Overlooked
  4. 4. • Permissions & Roles
  5. 5. • Permissions & Roles • Inheritance of Rights
  6. 6. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions
  7. 7. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
  8. 8. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
  9. 9. Image Credit: femaletrumpet02 http://www.flickr.com/photos/femaletrumpet02/3862031267/
  10. 10. Image Credit: ul_Marga http://www.flickr.com/photos/ul_marga/755378645/
  11. 11. Image Credit: gossamerpromise http://www.flickr.com/photos/gossamerpromise/432902183/
  12. 12. what do they open?
  13. 13. what do they open? how can I find the right one?
  14. 14. what do they open? how can I find the right one?
  15. 15. lots of permissions
  16. 16. CMFEditions: Save new version CMFEditions: Access previous versions CMFEditions: Apply version control Content rules: Manage rules View Management Screens Request review List portal members FTP Access set own properties iterate: check out content Use external editor Review portal content Allow sendto List undoable changes lots of permissions Delete Objects Portlets: manage portlets Modify view template List folder contentsManage properties Undo changes iterate: check in content Add portal member Set own password CMFEditions: Checkout to location CMFEditions: Revert to previous versions Add portal folders Add portal content View Groups Reply to item Portlets: manage own portlets
  17. 17. (and that’s a good thing)
  18. 18. (and that’s a good thing) ((take my word for it))
  19. 19. not so well documented Image Credit: The empty Book (http://www.flickr.com/photos/hirok/4404405566), a Creative Commons Attribution (2.0) image from hirok's photostream
  20. 20. Use The Source
  21. 21. Use The Source Products.CMFCore.permissions AccessControl.permissions Products.Five / permissions.zcml zope.security / permissions.zcml
  22. 22. help the doc team Image Credit: http://www.flickr.com/photos/soldiersmediacenter/2570460662/, a Creative Commons Attribution (2.0) image from soldiersmediacenter's photostream
  23. 23. Permissions Manual
  24. 24. Permissions Manual http://plone.293351.n2.nabble.com/plone-permissions-manual-td3666469.html
  25. 25. Permissions Manual http://plone.293351.n2.nabble.com/plone-permissions-manual-td3666469.html http://www.coactivate.org/projects/plone-documentation/permissions-manual
  26. 26. what do they open? how can I find the right one?
  27. 27. Roles
  28. 28. Image Credit: ul_Marga http://www.flickr.com/photos/ul_marga/755378645/
  29. 29. built-in roles from Plone
  30. 30. • Manager
  31. 31. • Manager - Like Superman, can do anything
  32. 32. • Manager - Like Superman, can do anything • Owner
  33. 33. • Manager - Like Superman, can do anything • Owner - All content management rights
  34. 34. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor
  35. 35. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor - Can change existing, but not create new
  36. 36. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor - Can change existing, but not create new • Reviewer
  37. 37. • Manager - Like Superman, can do anything • Owner - All content management rights • Editor - Can change existing, but not create new • Reviewer - Can change workflow state
  38. 38. • Contributor
  39. 39. • Contributor - Can add new content, but not edit existing
  40. 40. • Contributor - Can add new content, but not edit existing • Reader
  41. 41. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way
  42. 42. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member
  43. 43. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights
  44. 44. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights • Authenticated
  45. 45. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights • Authenticated • Anonymous
  46. 46. • Contributor - Can add new content, but not edit existing • Reader - Can view an object, but not manage it in any way • Member - No significant special rights • Authenticated distinguish folks who are logged in from folks who are not • Anonymous
  47. 47. you can create new ones
  48. 48. you can create new ones but be cautious . . .
  49. 49. • Too many roles can be confusing
  50. 50. • Too many roles can be confusing • Too many roles clutter the user interface
  51. 51. Image Credit: yin yang (http://www.flickr.com/photos/csb13/4577840509/), a Creative Commons by-nc-nd (2.0) image from csb13's photostream
  52. 52. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
  53. 53. Roles can be ‘global’ or ‘local’
  54. 54. Global Roles
  55. 55. Local Roles
  56. 56. so what’s the difference?
  57. 57. Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  58. 58. Assign a Local Role on a Folder Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  59. 59. Inheritance can be blocked Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  60. 60. Plone Site Grant A Global Role (say ‘Editor’) Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  61. 61. Global Roles CANNOT Be Blocked!!! Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  62. 62. so what do we do?
  63. 63. Assign a ‘Global’ Local Role (use sharing) Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  64. 64. Inheritance Blocking is Respected Plone Site Folder 1 Folder 2 Folder 1.1 Folder 2.1 Folder 1.2 Folder 2.2 X X
  65. 65. • Permissions & Roles • Inheritance of Rights • Workflow: States & Transitions • Advanced Techniques
  66. 66. states
  67. 67. Image Credit: Visits to Taiwan 2005 (http://www.flickr.com/photos/midpath/300465658/, a Creative Commons by-nc-nd (2.0) image from midpath's photostream
  68. 68. states can:
  69. 69. states can: • Assign permissions to roles
  70. 70. states can: • Assign permissions to roles • Control available transitions
  71. 71. states can: • Assign permissions to roles • Control available transitions • and, less well known:
  72. 72. assign roles to groups!
  73. 73. transitions
  74. 74. Image Credit: A walk into the bamboo paths (http://www.flickr.com/photos/fotopakismo/2390882485/) a Creative Commons by-nc-nd (2.0) image from fotopakismo's photostream
  75. 75. transitions control:
  76. 76. transitions control: • Where you end up
  77. 77. transitions control: • Where you end up • How you start the journey
  78. 78. transitions control: • Where you end up • How you start the journey • user-initiated or automatic
  79. 79. transitions control: • Where you end up • How you start the journey • user-initiated or automatic • Who can make the trip
  80. 80. transitions control: • Where you end up • How you start the journey • user-initiated or automatic • Who can make the trip • permission(s), role(s) or membership in group(s)
  81. 81. the rubber meets the road Image Credit: Transformers (http://www.flickr.com/photos/hoffarth/4506050669/), a Creative Commons by-nc-nd (2.0) image from hoffarth's photostream
  82. 82. A simple workflow app
  83. 83. A simple workflow app • User submits a request for travel expenses
  84. 84. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request
  85. 85. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request • If denied, the user can edit and re-submit
  86. 86. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request • If denied, the user can edit and re-submit • Accountant issues a reimbursement check
  87. 87. A simple workflow app • User submits a request for travel expenses • Approver approves or denies the request • If denied, the user can edit and re-submit • Accountant issues a reimbursement check • Request is closed
  88. 88. What do we need?
  89. 89. What do we need? • A Simple Content Type
  90. 90. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt
  91. 91. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow
  92. 92. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed
  93. 93. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed • A Pair of Roles
  94. 94. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed • A Pair of Roles • Approver, Accountant
  95. 95. What do we need? • A Simple Content Type • Title, Description, Amount and Receipt • A Workflow • New Request, Awaiting Approval, Approved, Denied, Closed • A Pair of Roles • Approver, Accountant • or do we?
  96. 96. What Tools to Use?
  97. 97. What Tools to Use? For the Content Type: ZopeSkel?? AGX??
  98. 98. What Tools to Use? For the Content Type: ZopeSkel?? AGX?? For the Workflow: collective.wtf ?? ZMI & portal_setup???
  99. 99. or, perhaps . . .
  100. 100. dexterity & uwosh.northstar
  101. 101. start with a buildout
  102. 102. start with a buildout
  103. 103. start up instance
  104. 104. fresh plone site
  105. 105. fresh plone site
  106. 106. (it works in plone 3, too)
  107. 107. you’ll install two products
  108. 108. you’ll install two products
  109. 109. they’ll install dependencies
  110. 110. they’ll install dependencies
  111. 111. new control panels
  112. 112. new control panels
  113. 113. we need a simple content type
  114. 114. make a content type
  115. 115. make a content type
  116. 116. set up type basics
  117. 117. add fields
  118. 118. add fields
  119. 119. add fields
  120. 120. add fields
  121. 121. amount field (float)
  122. 122. receipt field (file)
  123. 123. add behaviors (basic capabilities)
  124. 124. we also need a workflow
  125. 125. create new workflow
  126. 126. create new workflow
  127. 127. create new workflow
  128. 128. edit existing states
  129. 129. edit existing states
  130. 130. edit existing states
  131. 131. edit existing states
  132. 132. add new state(s)
  133. 133. add transition(s)
  134. 134. add transition(s)
  135. 135. add transition(s)
  136. 136. add transition(s)
  137. 137. add transition(s)
  138. 138. add transition(s)
  139. 139. add transition(s)
  140. 140. add transition(s)
  141. 141. assign workflow to type
  142. 142. assign workflow to type
  143. 143. and that’s it!
  144. 144. a quick live demo
  145. 145. • Permissions & Roles • Inheritance of Rights • Workflow: States and Transitions • Advanced Techniques
  146. 146. content rules
  147. 147. content rules no programming needed
  148. 148. per-field permissions
  149. 149. • Show different aspects of a type to different users
  150. 150. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states
  151. 151. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states • Allow users to edit only certain fields
  152. 152. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states • Allow users to edit only certain fields • Change which fields can be edited by state
  153. 153. • Show different aspects of a type to different users • Show different aspects of a type to the same user in different states • Allow users to edit only certain fields • Change which fields can be edited by state • and so on . . .
  154. 154. Image Credit: Mona Lisa (http://www.flickr.com/photos/caribb/2355878576/"), a Creative Commons by-nc-nd (2.0) image from caribb's photostream
  155. 155. Image Credit: Les Demoiselles d'Avignon(http://www.flickr.com/photos/webtweakers/2511681891/), a Creative Commons by-nc-nd (2.0) image from webtweakers's photostream
  156. 156. transition actions script (before) script (after)
  157. 157. filesystem python scripts
  158. 158. filesystem python scripts cannot be overridden
  159. 159. workflow events IBeforeTransitionEvent IAfterTransitionEvent
  160. 160. • which workflow was used
  161. 161. • which workflow was used • old and new workflow states
  162. 162. • which workflow was used • old and new workflow states • which transition is happening (has happened)
  163. 163. • which workflow was used • old and new workflow states • which transition is happening (has happened) • status of the object
  164. 164. • which workflow was used • old and new workflow states • which transition is happening (has happened) • status of the object • the object itself
  165. 165. imagine the possibilities Image Credit: I'm So Excited (http://www.flickr.com/photos/expo86/1907930897/), a Creative Commons Attribution Non-Commercial No-Derivative-Works (2.0) image from expo86's photostream
  166. 166. Thanks to:
  167. 167. WebLion
  168. 168. the Penn State University
  169. 169. cewing@uw.edu

Editor's Notes









  • There are many things you can do in Plone, each is controlled by a permission. You can think of it like a series of control rooms, each of which has a locked door.
  • Each of those doors has a specific key that allows someone to open it and perform the action inside.
  • But with all the actions one can perform, the number of keys can get overwhelming. And managing permissions can be like digging through one of those junk drawers filled with random keys. Two question become important quickly:


































  • Unfortunately, this wide array of permissions isn’t really very well documented. So what can you do?




  • Or, if you happen to be community-minded (and if you’re using Plone, the chances are good that you are), you can pitch in to help the documentation team fix the problem.




  • Roles are like neatly labelled key chains that hold all the keys required to perform a well-defined set of tasks.



































































































  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions
  • remember that guards can also include groups and permissions




























×