Easy Online Business Processes with Plone Forms and Workflow

Easy Online Business
Processes with Plone
Forms and Workflow
for Make Benefit Glorious Nation of Canuckistan
T. Kim Nguyen <nguyen@uwosh.edu>
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 processing
Be 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 Savings
physically 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
ATVocabularyManager
define 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
(Roles and Permissions)
•
who can see and edit submitted forms?
•
who can initiate transitions?
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)
Collections
simple “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.d2ccollection-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 Management
Dexterity 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
•
•
Not so good:
•
Archetypes:
•
slower? e.g. form with 634
fields 😳
•
going away eventually?
easy to add adapters: save
data, mailer, custom script, D2C
•
thank you page
•
default form view looks good
acceptable
Dexterity:
pros / cons
•
•
Good:
Not so good (for users/
integrators):
•
through the web type
(“form”) creation/
modification
•
still developer-oriented,
requires file system
coding!
•
no need for D2C to create
content items!
•
no TTW vocabularies,
validators, mailers, custom
scripts, default expressions
•
easy to enable Folderish
behaviour
•
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?
•
nguyen@uwosh.edu
•
http://uwosh.edu/ploneprojects