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