#summary Contributor entity model
#labels Phase-Design,Contents-Skeleton,Design-Model

_*Eventually, this topic should be populated by the output of*_ `pydoc`.

{{{
class Contributor(db.Model):
  """Contributor details for a specific Program.

  Some Contributor workflows have the Contributor (acting as an Author)
  creating Proposals and desiring for one (or more?) of them to be
  converted into Tasks by Reviewers and Hosts.  Other workflows have the
  Reviewers (acting as an Author) proposing Proposals, that Contributors
  claim to convert them into Tasks.

  A Contributor entity participates in a number of relationships:

   author)  a 1:1 relationship associating a Contributor with generic
     Author details and capabilities.  The back-reference in the Author
     model is a Query named 'contributor'.

   tasks)  a many:many relationship associating all of the Tasks to which
     a specific Contributor has contributed with that Contributor.  See
     the TasksContributors model for details.
  """
  author = db.ReferenceProperty(reference_class=Author, required=True,
                                collection_name="contributor")
}}}

----
_Copyright 2008 Google Inc._
_This work is licensed under a_
[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License].
[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]
