1 Using Plone to devolve Web site management and maintenance Vancouver Python Workshop 2004 Dominic Hiles Web Developer.

Slides:



Advertisements
Similar presentations
1 Give the dog a Plone Dominic Hiles Kieren Pitts.
Advertisements

The EBSCONET Subscription Management System is a multi-lingual
Pharos Uniprint 8.3.
“The Honeywell Web-based Corrective Action Solution”
An Introduction to Using
Program Management Portal: Overview for the Client
Outlook 2010 Quick Guide Table of Contents: Overview of client, Sending/Receiving , Using the address book………..……… Sent Items……………………………………………………………………………………………..…..8.
Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
John Gallagher Manager, Data Acquisition and Management State Government of Victoria SSI Victorial Summit 2008.
SOFTWARE PRESENTATION ODMS (OPEN SOURCE DOCUMENT MANAGEMENT SYSTEM)
Workflow & Event Derivation Workshop
HyperContent 2.0 JA-SIG Winter Conference December 5, 2005 Alex Vigdor, Columbia University.
Sakai Overview ITS Teaching and Learning Interactive Aurora Collado January 10, 2008.
Asset: Academic Survey System & Evaluation Tool Bert G. Wachsmuth Seton Hall University.
Workflow & Event Derivation Workshop
Sample School Website Sydney Region ITSU School Support
The Dr ü G Book: An Intro to Drupal The Dr ü G Book: An Intro to Drupal (Dr ü G: Drupal User ’ s Group - users, not developers) This is an introduction.
Welcome to the Minnesota SharePoint User Group. Quick Intro Announcements Personalization in SharePoint Configuring User Profiles Configuring Audiences.
© 2008 The McGraw-Hill Companies, Inc. All rights reserved. M I C R O S O F T ® Preparing for Electronic Distribution Lesson 14.
Plone Großes Seminar Blockseminar SS04 Referentin: Katja Reitz.
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
Trimble Connected Community
Denise Luther Senior IT Consultant Practical Technology Enablement with Enterprise Integrator.
September 10, Agenda Welcome Updates Reminders New CT.gov Site Questions & Comments.
Lorie Stolarchuk Learning Technology Trainer 1 What has changed with the 2.7.X Upgrade to CLEW?
Web Content Management System Access October 14, 15, 16 - Halifax, Nova Scotia Developing a System for Managing Web Content York Libraries Content.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
Middle States Self-Study Online Resources. Primary Web Resources  Provost’s MSCHE site  Document and Feedback request forms  Secure MSCHE Document.
Hunter Valley Amateur Beekeepers Forum User Guide Guide shows sample screenshots with most relevant actions. Website is at
PS 9.2 UPGRADE Purchasing 1 OUHSC - PeopleSoft Financials Upgrade May 2014.
HyperContent 2.0 Common Solutions Group September 21, 2005 Alex Vigdor, Columbia University.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
2009 NOAC TRAININGTHE POWER OF ONE Passing it on Electronically Jason Coe.
CSC350: Learning Management Systems COMSATS Institute of Information Technology (Virtual Campus)
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Copenhagen, 7 June 2006 Toolkit update and maintenance Anton Cupcea Finsiel Romania.
My Workspace ELearning in Sakai Randy Graff, PhD HSC Training.
Sample School Website. What is wrong with the existing School Webspace Site? Can only host static pages – no dynamic content possible. Can not be edited.
Porting methodology Porting of an WEB Site using PTK To insert your company logo on this slide From the Insert Menu Select “Picture” Locate your logo file.
CSC350: Learning Management Systems COMSATS Institute of Information Technology (Virtual Campus)
Table of Contents TopicSlide Administrator Login 2 Administrator Navigations 3 Managing AlternativeDr.com Blogs 4 Managing Dr. Lloyd May Blogs 5 Managing.
Enterprise Service Desk (ESD) Enterprise Service Desk for Notification / Knowledge Article Authors.
CharMeck.org Contributer Training SharePoint 2013 Orientation and Basic Training.
KIM: Kuali Abstraction Layer for Identities, Groups, Roles, and Permissions.
The SharePoint Shepherd’s Course for End Users Based on the book by Robert L. Bogue Copyright 2011 AvailTek LLC All Rights Reserved.
Content Management Systems. Why CMS? Ease of use Generation of dynamic content Ability to control content workflow Integration of legacy content.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Rendering Syndicated Library Content in an Institutional Portal: Integrating MyLibrary into uPortal John Fereira: Cornell University Eric Lease Morgan:
UCLA Office of Instructional Development Web Site Redesign May 20, 2005.
What is ? ●It is a Halton District School Board term ●It is HDSB use of Google Apps for education. It includes: ■ Google Docs ■ Google Drive ■ Google Applications.
Collaborative Work Module Gwen Kerdiles European Solution Centre SunGard Higher Education.
@GPUG WHAT’S NEW IN DYNAMICS GP 2016 ? Presented by Beat Bucher, Dynamics GP MVP 1 Tweet During today’s #GPUG, #GPUG.
Fab25 User Training Cerium Labs LabCollector - LIMS Lynette Ballast.
EIONET Portal Tool Kit Miruna Bulandra Finsiel Romania Copenhagen, 28 May 2002.
Web Content And Customer Relationship Management Solution. Transforming web sites into a customer-focused, revenue generating channel with less stress.
CHM Portal Tool Kit Miruna Bulandra Finsiel Romania Copenhagen, 5 June 2002.
Using Plone to devolve Web site management and maintenance
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
Your Name Proposal Creation Module 5 Your Name
Cms Full-featured Flexible Web Content Management System for All Your Needs.
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
Global Grid Forum GridForge
Make Links from your Baan System
An Introduction to Using
(Includes setup) FAQ ON DOCUMENTS (Includes setup)
asset: Academic Survey System & Evaluation Tool
(Includes setup) FAQ ON DOCUMENTS (Includes setup)
Presented by : Karanvir Kaur Web Team
USING CONFLUENCE AS YOUR CMS
Presentation transcript:

1 Using Plone to devolve Web site management and maintenance Vancouver Python Workshop 2004 Dominic Hiles Web Developer

2 Overview Who am I ? Project background Devolving content maintenance –Business roles –Workflow –Editing content Devolving user management –MembershipTool limitations –Notifications mechanism –Transfer of object ownership on account deletion

3 Who am I ? Web developer within the Internet Development (ID) group of the Institute for Learning and Research Technology (ILRT) ID group has 10+ staff: usability engineers, designers, developers, project managers Started Zope/Python development April 2003 A Plone "newbie" – started September 2003

4 Church of England Project Proposal finalised Feb 2003 Graphic design agreed Sep 2003 Plone development started October 2003 Development happened in tandem with Plone 2 release cycle

5 Background - content 2000 static HTML pages 350 images, 450 "text" files (e.g. PDFs, MS Word docs) 4 ASP Web applications, serving data from around 20,000 database records, held in 4 different databases

6 Migration of static content HTML pages passed through HTMLTidy to convert to XHTML All pages then undergo manual editing whilst on the file system Pages, folders and files (e.g. PDFs, images etc.) imported into ZODB via script and created as Plone objects

7 Migration of Web applications 3 MS Access databases exported as CSV files and imported into new Archetypes objects 1 remaining database: –Data must be maintained elsewhere –Previously exported as CSV, manually imported into MS Access, then displayed via ASP –Now, CSV file uploaded "Through The Plone" (TTP) and data are automatically imported into PostgreSQL

9 Devolving content maintenance All content can now be maintained TTP but… …up to 100 users with responsibility for content in different areas of the site

10 Talk focus Providing the mechanisms for these users to easily maintain the content for which they’re responsible Providing the tools to manage these users

11 Content maintenance 1.Create the business roles – what should people be able to do to the content? 2.Create the workflow – provides the mechanism to underpin these roles 3.Provide the GUI for maintaining the content

12 Content maintenance - roles Broadly, 4 different business roles: –Editor Creates and edits content in an area, submitting it for publishing –Reviewer Reviews submitted content, altering, rejecting or publishing it as appropriate

13 Content maintenance – roles (2) –Administrator Able to perform functions of Editor and Reviewer Grants roles to other users in the area for which they’re responsible –Site Manager Able to perform functions of Administrator Manages users Uses other custom tools (e.g. import of CSV data)

14 Content maintenance – roles (3) 4 Business roles distilled to 3 Zope roles: Editor, Reviewer, Administrator "Site Manager" = Administrator role granted at site root Groups were created and named according to a folder-dependent role –e.g. info_editors (editors of the info folder) Users were placed in group(s) according to their role(s) in a given content area

15 Workflow Business roles implemented by designing appropriate workflow Approx. 40% of Plone development time spent on aspects of workflow design and implementation

16 Private Pending Published Reject Retract Submit Publish Retract Publish

17 Workflow – key requirements All actions should be collaborative –Editors and reviewers must be able to work together on content in folders for which they're responsible –No notion of ownership – content is owned by the "business" Creator, workflow history and edit history should still exist –Not the traditional Plone ethos! –Solution: transition guards and state permissions don't reference Owner role

18 Workflow – key requirements Revisioning (aka simple Staging) –The ability to work on a draft copy of a published object, before committing this copy to a new publishing cycle

19 Workflow - revisioning Re-edit transition available on objects in published state Takes a copy of the published object, and attaches it to that published object as an attribute, with a fixed id Published object: index.html Revision: ~~revision~~ Publish Re-edit

20 Workflow - revisioning

21 Workflow – key requirements Versioning –Ability to view and revert to previously published versions of the same document

22 Workflow - versioning Publish transition creates a versions container on the published item Old copy is placed in this container each time the object is published Published object: index.html Versions container Version 1 Version 4 Version 3 Version 2 Publish Revert

23 Workflow - versioning The versions container class HistoricalVersions (SimpleItem): """Manages historical versions of an object""" security = ClassSecurityInfo() meta_type = 'Historical Content Versions' def __init__( self, id ): self.id = id self._versions = Folder('_versions') self._delete_history=() –Note use of _versions so that old versions items aren't accessible via traversal

24 Workflow - versioning

25 Re-edit (copy) Versioned Revert Private Pending Published Reject Retract Submit Publish Retract Publish

26 Workflow – key requirements Notifications –The closest, most appropriate person needs to be notified of actions on content –Consider a folder : /info/transport/trains Bert is a Reviewer of /info/transport Fred is a Reviewer of /info/transport/trains If an editor submits content for publishing in /info/transport/trains, Fred should be notified but Bert should not –Solution: skin scripts, triggered by transitions, send mail appropriately

27 Workflow – under the bonnet Uses DCWorkflow –DCWorkflow allows scripts to be triggered on state transition –By default, scripts or external methods must be added to ZODB –Subclassed DCWorkflowDefinition to allow Use of FSPythonScripts, accessible via skin and maintainable in CVS Use of (unprotected) methods held within Product module (to provide versioning and revisioning) –Added custom states, permissions & guard conditions

28 Workflow – key requirements management - "Great workflow, but I don't want all of this Junk mail!" –Prioritise Not all s require action, e.g. "An item is awaiting your review" vs. "An item has been published" Users should be able to subscribe only to s requiring an action –Provide a digest option –Provide an unsubscribe option Users may go on holiday or want to hide! Other users need to be notified to take action instead

29 Workflow – management Solution: two user options – frequency Immediate (default) Digest Disabled – categories Info (e.g. "An item has been published in your area") Warning (e.g. "An item is awaiting your review") Critical (e.g. "Your account has been deleted") –Critical mails always sent immediately –Users can just subscribe to warning s, or receive info s as well

30

31 Workflow – management digest_mail tool subclasses MailHost –Possible workflow actions are set on the tool by the developer, grouped into the three categoriesset on the tool –Workflow s are sent with: sendTriggeredMail(self, messageText, mto_userid, mfrom=None, subject=None, encode=None, action=None) –sendTriggeredMail() looks up user preferences from mto_userid, cross-checks them with the action category and then handles appropriately –Digest mails are created on the FS, the tool sends them when sendQueuedMail() is called (e.g. by a cron job)

33 Workflow – key requirements Deletion must be managed –A workflow concept, but normally handled outside of DCWorkflow –Should hook into standard notifications machinery –Should be possible to restore deleted content –State dependant e.g. editors should be able to delete objects in their Private state but not when published

34 Workflow – managing deletion Idea was to mimic Windows Recycle Bin folder_delete() skin method provides a simple hook Drop in Product - "PortalWastebasket" Items moved to Wastebasket on deletion Items restored to original location on demand State dependency handled by controlling "Delete objects" permission with workflow

35 Workflow – managing deletion Essentially just another folder but… 1.Must be collaborative – anyone should be able to restore content in areas for which they have responsibility 2.Original security context lost when item is moved to folder, so how do you set e.g. View permissions? 3.Objects must be moved to private state when restored 4.Must be possible to delete more than one object with the same id, or the same object more than once!

36 Workflow – managing deletion Solution: 1.Move object to Wastebasket, holding its original id/path in a registry 2.Transition object to private state en route to Wastebasket (now invisible to Anonymous) 3.Grant users with Authenticated role View permission on wastebasket items 4.When restoring the object, use workflow definition to reinstate security in correct context

37 Workflow – managing deletion

38 Workflow - summary 3 roles: Editor, Reviewer and Administrator 3 states: Private, Pending and Published Collaborative workflow (i.e. no "Owner") Revisioning and versioning system notifications management Wastebasket (cf. Windows Recycle Bin) …

39 Maintaining the content WYSIWYG editor Why not Epoz/Kupu? –Both were immature when project started –Inconsistent tidying from MS Word –No spell checker –Inconsistent XHTML quality –No support for Mac OS X in Kupu –Previous experience of edit-On Pro

40 edit-On Pro Commercial WYSIWYG editor, produced by RealObjects Java applet Created Zope Product to integrate into Plone Biggest problem was/is requirement for recent JRE to be installed locally Kupu looking increasingly attractive!

41 edit-On Proedit-On Pro in action

42 Devolving content maintenance Summary Decide on the business roles Create the workflow to facilitate the business roles Provide appropriate editing tools

43 Devolving user management Good TTP interface, but there are some problems –MembershipTool permissions and local role methods make delegation hard, in effect, requiring Zope "Manager" role –No notification mechanism for changes in users’ status –No mechanism for transferring ownership upon user deletion

44 User management - solutions MembershipTool –Subclassed tool and redefined permissions where necessary –Overloaded local role methods to handle custom roles

45 User management – solutions (2) Notification –Hooked user management methods to fire s when users are added, deleted or change their group memberships –Used digest_mail tool

46 User management – solutions (3) Ownership Transfer –When a user is deleted: Find objects owned by user Transfer ownership to the closest appropriate person in context of each object Notify any users to whom ownership has been transferred Notify the user who has been deleted

47 User management – summary Effective delegation of user management is impossible in "out- the-box" Plone Plone can be extended to add this functionality CMFMember looks promising for providing a more generic solutionCMFMember

48 Final review Effectively devolving content maintenance was hard, principally because of the workflow design and development Lots of open-source Products now appearing to tackle complex workflows, including versioning and revisioning (e.g. Occams)Occams Devolving user management was much easier – CMFMember may make it easier stillCMFMember Extensible Zope/Plone architecture allowed functionality to be added as required

49 Questions? Slides available at: