CollaborationWithArchetypes
Collaboration Management with Archetypes A presentation prepared for the 2004 Plone conference in Vienna, Austria. The Use Case: Burning Man - Annual construction of a temporary city (peak population: 35,000) in the Nevada desert - Major construction projects: - The Man - The Temple - Hundreds of others - Emphasis on community and inclusion - And, of course: - Fire - Fire - And more fire The Use Case: Burning Man - Team-centric, volunteer driven organization - Many teams, decentralized management - Teams require collaborative workspace(s) - Members apply for teams, are only approved after review - Team managers need to track team-specific information for each team member The Solution: TeamSpaces
?- Archetypes-based team and team member management - Depends on CMFMember
?- Introduces several new object types: - TeamTool
?- Team - TeamMembership
?- TeamSpace
?- TeamRoster
?The Types: TeamTool
?- A containerish tool at the root of the Plone site - Manages allowed Team and TeamMembership
?types - Manages default security policy for Teams and TeamSpaces
?- Can contain only Team objects or instances of registered custom team types The Types: Team - Represents the logical entity of a team or workgroup - Lives exclusively within the TeamTool
?- Is used for team member and team member data managment only; NOT used as a collaborative space for team content - Defines the security policy for itself and any related TeamSpaces
?- Can contain only TeamMembership
?objects or instances of registered custom team membership types - Can act as a schema provider for contained TeamMembership
?objects The Types: TeamMembership
?- Related via AT references to specific Member objects - Gets schema from Team object, can be used to store Team-specific information that is related to the Member Team security policy: TeamSecurity
?- Team security policy defines allowed roles, default roles, and "active" TeamMembership
?workflow states - allowed roles: the set of roles that the TeamSecurity
?policy is allowed to manage - default roles: the allowed roles that are associated with a new TeamMembership
?by default - active workflow states: the review states of the TeamMembership
?workflow which imply that the member is active (i.e. entitled to security priveleges) on a given team - TeamSecurity
?is a mix-in class; any class that includes this among its base classes will be able to support team security The Types: TeamSpace
?- A content collaboration area for one or more teams - Implements the security policy for any related teams - Does NOT support any team member or member data management; that is handled entirely by Team objects The Types: TeamRoster
?- A view-only interface component for listing the members of a team and related member data - Can live inside or outside of a TeamSpace
?Customization Example: BRC Extranet - Custom Member, Team, TeamSpace
?, TeamRoster
?classes - Custom roster interface - ATContactInfo
?- Custom roles, security policy, workflows, and portlets (currently being back-ported to ship w/ TeamSpace
?product as a Plone Customization Policy) Resources: - TeamSpace
?product page:
http://members.plone.org/products/teamspace- CMFMember
?product page:
http://members.plone.org/products/cmfmember- Samplex tutorial product:
http://members.plone.org/products/samplex- BRC ViewCVS
?:
http://blaze.burningman.com/cgi-bin/viewcvs.cgi/Acknowledgements: - Geoff Davis - Ben Saller and Kapil Thangavelu of ObjectRealms
?- Jodok Batlogg of Telesis - Blue Dynamics - Alan, Alex, and the entire Plone Team