app/soc/models/proposal.py
author Pawel Solyga <Pawel.Solyga@gmail.com>
Fri, 22 Aug 2008 13:44:50 +0000
changeset 99 8c38b546a3cf
parent 97 d01d0ae7d6c8
child 129 d9543d181c37
permissions -rw-r--r--
Added public view support (not using controller yet) Changed Google Account variable from user to id in views and templates (no more confusions with Melange user). Added templates_helpers for makeSimblingTemplate function. Addded new template tag readonly_field_as_table_row used in public views Fixed one typo in roles.py
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
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    27
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
    28
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    29
class Proposal(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
    30
  """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
    31
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    32
  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
    33
  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
    34
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    35
  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
    36
    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
    37
    '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
    38
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    39
   """"
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    40
	#: 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
    41
	#: 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
    42
	#: 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
    43
	#: 
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    44
	#: 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
    45
	#: 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
    46
	#: 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
    47
	#: 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
    48
	#: work.reviews:  reviews of the Proposal by Reviewers.
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 = db.ReferenceProperty(reference_class=soc.models.work.Work, required=True,
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    50
                              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
    51
d01d0ae7d6c8 Moved Proposal model from wiki to source code and updated ProposalModel wiki page.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
diff changeset
    52
  #: 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
    53
  #: 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
    54
	#: 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
    55
  #: 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
    56
  details = db.TextProperty(required=True)