Upload
t-kim-nguyen
View
268
Download
1
Tags:
Embed Size (px)
Citation preview
Easy Online Business Processes with Plone Forms and Workflow
for Make Benefit Glorious Nation of Canuckistan
T. Kim Nguyen <[email protected]> University of Wisconsin Oshkosh http://uwosh.edu/ploneprojects
Don’t be a chump
• Filling out paper forms: BAD
• Tracking / distributing / filing paper forms: BAD
Online forms + workflow processingBe a 21st Century Hero
Fast• Online forms = fast, accurate data
• Online forms workflow processing =
• email notifications
• dashboard & collections to list forms in process
• fast search/lookup
Cost Savings
freeing up staff (e.g. half a person’s time) allow lean organizations to remain effective
make your office more productive
Time Savingsphysically moving paper forms between buildings
!making copies to distribute to
3rd parties !
locating paper forms in process
!filing/storage
!retrieving filed papers
Frustration Savings• “Did you get the form I
submitted?”
• “Where is my form in the process?”
• “Why is it taking so long?”
• No more data entry, duplication, or errors
What tools do you need?
things Plone ships with !
& !
some add-ons
Add-ons• PloneFormGen (Products.PloneFormGen)!
• D2C (uwosh.pfg.d2c)!
• Vocabularies (Products.ATVocabularyManager)
• Data grid field (Products.PFGDataGrid)
• Workflow manager (plone.app.workflowmanager)!
• Big transition buttons (uwosh.transitionbuttons)
• Templated emails (collective.easytemplate)
PloneFormGen• drag & drop fields into place
• sophisticated defaults, validation, overrides
• sends email, saves data
• can auto-populate name & email address, other user attributes
D2C: form ➡ real content objects• objects are editable & you can assign a workflow
ATVocabularyManagerdefine preset lists of values users choose from in form
selection/multiselection fields
Data grid field• you define the columns
• users dynamically add & remove rows of input
Workflow Manager
• Workflow is everywhere in Plone, so let’s use it
• But first let's put a prettier face on it
Before… (ZMI)
…and After: States
Transitions
Diagram generator
!
!
• coming soon: diagram-centric UI! (Sam Schwartz)
• customize state and transition security (roles, permissions, groups)
• Easily create email notifications on transitions
Security
• who can see and edit submitted forms?
• who can initiate transitions?
(Roles and Permissions)
Simple security
Business process owner ➡ Manager Users ➡ Anonymous or Authenticated
More complex security
Business process owner ➡ Manager
Office staff ➡ new custom roles
!- front desk,
- office manager - director
- faculty advisor
Users ➡ Authenticated
Big *ss buttons
• uwosh.transitionbuttons by Sam Schwartz
Templated emails• collective.easytemplate
• use powerful expressions in emails: recipients, subject, body
• templated pages and portlets too
• {{ list_folder("courses") }}!
• {{ context.Title().decode("utf-8") }}!
• {{ context.getBody() }}!
• {{ context.absolute_url() }}!
• {{ context.aq_parent.sister }}
{% if portal_state.anonymous() %}! anon!{% else %}! logged in!{% endif %}
{{ query({"portal_type":"News Item","sort_on":"Date","sort_order":"reverse","sort_limit":3,"review_state":"published"}) }}!
Tools (included with Plone)• Products.CMFPlacefulWorkflow
• collections
• portal_catalog
• portlets
• dashboard
• search
• comments (plone.app.discussion *OR* workflow state change comment)
CMFPlacefulWorkflow
• activate to create a workflow policy (assign a custom workflow) in a specific D2C folder
• (not needed if you tell D2C to create a new content type)
Collectionssimple “dashboard”: folder containing several collections
Display ➡ All content
Catalog indexes & collection criteria
• You want to create a new collection criterion, e.g. “student job type”
• see “how to add fields from a uwosh.pfg.d2c adapter to collection criteria” http://www.uwosh.edu/ploneprojects/docs/developers/ploneformgen-fu/uwosh.pfg.d2c-collection-fields
• ZMI: add a Script (Python) to return the attribute value if it’s there
• portal_catalog ➡ Indexes: add FieldIndex
• Site Setup ➡ Collections, All fields, check box
Use portlets!• static text portlets to display general links
• collection portlets and “recent items” portlets
• content type portlets: display links or help specific to a content type (Site Setup ➡ Types)
• group portlets: display links or help specific to the logged in person’s group membership(s) (Site Setup ➡ Users and Groups ➡ Groups tab)
• use Plone’s built-in dashboard (also supports group portlets!)
Search
Plone’s built-in commenting• threaded commenting, email notification, moderation, captchas
Workflow transition comments• add a comment as long as a transition occurs
• visible through State ➡ Advanced…
• plaintext only
Landing Pages
User Instructions
Examples• Study abroad application, program management
(Office of International Education)
• Student advising worksheet
• Student job application (Div. of Information Technology)
• IRB approval (Office of Grants)
• Contract management (College of Nursing)
Study Abroad
5,984 processed since 2008
!16 workflow states
!savings: $25 per
app + 0.5 FTE per year = 2.5 FTE = ~
$200,000 total savings
Advising Worksheet
up to 150-200 filled out per day… 12,000 since August 2013
Student IT Job Applications
442 filled out since March 2013
Institutional Review Board Approval
180 fields !
60 states !
114 transitions
Contract ManagementDexterity content type
!70 contracts (since Oct. ‘14)
!PDFs, contact info, renewal
dates
PloneFormGen or Dexterity?
PloneFormGen: pros / cons
• Good:
• entirely through the web
• robust, time-tested
• easy to specify validators, default values & expressions
• easy to add adapters: save data, mailer, custom script, D2C
• thank you page
• default form view looks good acceptable
• Not so good:
• Archetypes:
• slower? e.g. form with 634 fields 😳
• going away eventually?
Dexterity: pros / cons
• Good:
• through the web type (“form”) creation/modification
• no need for D2C to create content items!
• easy to enable Folderish behaviour
• Not so good (for users/integrators):
• still developer-oriented, requires file system coding!
• no TTW vocabularies, validators, mailers, custom scripts, default expressions
• no TTW rich text labels, data grid fields, nested field sets
Wishlist: improve (PFG & D2C) or Dexterity• PloneFormGen: more layouts, e.g. grids, two-column... or dynamic layouts a la
collective.cover?
• D2C:
• make it easy to enable Folderish behaviour
• checkboxes to automatically add catalog indexes & collection criteria for selected form fields
• Dexterity:
• improve TTW user/integrator experience
• TTW vocabularies
• ..ie. create a Dexterity equivalent of PloneFormGen?
Workflow Manager enhancements
• Better UI for creating templated email notifications
• Expose transition guard expressions & create expression builder
• *** New UI: directly manipulate the diagram (Sam Schwartz) ***
Next Steps
• Try it!
• Questions?
• http://uwosh.edu/ploneprojects