app/soc/models/proposal.py
author Pawel Solyga <Pawel.Solyga@gmail.com>
Sun, 21 Sep 2008 08:50:42 +0000
changeset 181 fdd29818a954
parent 129 d9543d181c37
child 206 832335761384
permissions -rw-r--r--
Remove Author model (use Person instead). Update models after removing Author. Add new Sponsor, Organization models. Patch by: Pawel Solyga Reviewed by: Todd Larsen Review issue: 801 Review URL: http://codereviews.googleopensourceprograms.com/801
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
97
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     2
#
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     3
# Copyright 2008 the Melange authors.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     4
#
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     8
# 
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    10
# 
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    16
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    17
"""This module contains the Proposal Model."""
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    18
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    19
__authors__ = [
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    20
  '"Todd Larsen" <tlarsen@google.com>',
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    21
  '"Pawel Solyga" <pawel.solyga@gmail.com>',
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    22
]
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    23
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    24
from google.appengine.ext import db
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    25
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    26
from soc import models
181
fdd29818a954 Remove Author model (use Person instead). Update models after removing Author. Add new Sponsor, Organization models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 129
diff changeset
    27
from soc.models import base
97
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    28
import soc.models.work
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    29
181
fdd29818a954 Remove Author model (use Person instead). Update models after removing Author. Add new Sponsor, Organization models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 129
diff changeset
    30
class Proposal(base.ModelWithFieldAttributes):
97
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    31
  """Model of a Proposal, which is a specific form of a Work.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    32
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    33
  A Proposal entity participates in the following relationships implemented 
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    34
  as a db.ReferenceProperty elsewhere in another db.Model:
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    35
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    36
  tasks)  an optional 1:many relationship of Task entities using the
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    37
    Proposal as their foundation.  This relation is implemented as the
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    38
    'tasks' back-reference Query of the Task model 'proposal' reference.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    39
129
d9543d181c37 Bugfix, invalid syntax noticed by epydoc.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 97
diff changeset
    40
  """
d9543d181c37 Bugfix, invalid syntax noticed by epydoc.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 97
diff changeset
    41
97
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    42
	#: Required 1:1 relationship with a Work entity that contains the
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    43
	#: general "work" properties of the Proposal.  The back-reference in the Work
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    44
	#: model is a Query named 'proposal'.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    45
	#: 
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    46
	#: work.authors:  the Authors of the Work referred to by this relation
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    47
	#: are the authors of the Proposal.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    48
	#: work.title:  the title of the Proposal.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    49
	#: work.abstract:  publicly displayed as a proposal abstract or summary.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    50
	#: work.reviews:  reviews of the Proposal by Reviewers.
181
fdd29818a954 Remove Author model (use Person instead). Update models after removing Author. Add new Sponsor, Organization models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 129
diff changeset
    51
  work = db.ReferenceProperty(reference_class=models.work.Work, required=True,
97
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    52
                              collection_name="proposal")
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    53
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    54
  #: Required db.TextProperty describing the proposal in detail.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    55
  #: Unlike the work.abstract, which is considered "public" information,
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    56
	#: the contents of 'details' is only to be displayed to Persons in roles
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    57
  #: that have a "need to know" the details.
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    58
  details = db.TextProperty(required=True)