# HG changeset patch # User Sverre Rabbelier # Date 1210624856 0 # Node ID 6edf98d9c73924989094073757bf9357eca14c6b # Parent 7a901a99b349c1b70a4ba1584235ee6e09aafb78 Initial definition of the Documentation Model. Patch by: Sverre Rabbelier Review by: Todd Larsen Review issue: 25 Review URL: http://codereviews.googleopensourceprograms.com/25 diff -r 7a901a99b349 -r 6edf98d9c739 soc/models/documentation.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/soc/models/documentation.py Mon May 12 20:40:56 2008 +0000 @@ -0,0 +1,63 @@ +#!/usr/bin/python2.5 +# +# Copyright 2008 the Melange authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""This module contains the Documentation Model.""" + +__authors__ = [ + '"Todd Larsen" ', + '"Sverre Rabbelier" ', +] + +from google.appengine.ext import db + +from soc import models +import soc.models.person + + +class Documentation(db.Model): + """Model of Documentation, which is a Work authored by Administrators.""" + + #: 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. + work = db.ReferenceProperty(reference_class=soc.models.work.Work, required=True, + collection_name="proposal") + + #: 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'. + person = db.ReferenceProperty(reference_class=soc.models.person.Person, + collection_name="docs") + + #: An optional db.BlobProperty containing the documentation + #: (usually a scanned image of a paper document or a PDF file). + attachment = db.BlobProperty() +