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 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? • [email protected] • http://uwosh.edu/ploneprojects
© Copyright 2024