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