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


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

{{{
class Documentation(db.Model):
  """Model of Documentation, which is a Work authored by Administrators.

  A Documentation entity participates in a number of relationships:

   work)  a required 1:1 relationship with a Work entity that contains the
     general "work" properties of the Documentation.  The back-reference in
     the Work model is a Query named 'documentation'.

     work.authors:  the Authors of the Work referred to by this relation
       are the Administrators (or Hosts) creating the Documentation.

     work.title:  the title of the Documentation (e.g. "Verification of
       Eligibility").

     work.abstract:  summary of the contents of the 'attachment', or just
       an indication that the required documentation was supplied but is
       not actually attached.

     work.reviews:  annotations to the Documentation made by other
       Administrators.

   person)  a many:1 relationship of Documentation entities that pertain
     to a single Person.  The back-reference in the Person model is a
     Query named 'docs'.

   attachment:  optional db.BlobProperty containing the documentation
     (usually a scanned image of a paper document or a PDF file).
  """
  work = db.ReferenceProperty(reference_class=Work, required=True,
                              collection_name="proposal")

  person = db.ReferenceProperty(reference_class=Person,
                                collection_name="docs")

  attachment = db.BlobProperty()
}}}

----
_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]
