app/soc/models/task.py
author Todd Larsen <tlarsen@google.com>
Sat, 22 Nov 2008 08:55:55 +0000
changeset 546 850d9a5ad894
parent 533 ba3309b2fd30
child 622 073cbc33bbfe
permissions -rw-r--r--
Rename the User.public_name Property to simply 'name' (but leave the verbose name as "Public name"). This is to take advantage of standardizing on 'name' in the common edit template (and possibly other common templates). The Property was renamed because public_name was already a "name", unlike the recent change to the Work Model class, where 'title' was "aliases" using a tiny name() method instead. Patch by: Todd Larsen
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     2
#
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     3
# Copyright 2008 the Melange authors.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     4
#
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     8
# 
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    10
# 
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    16
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    17
"""This module contains the Task Model."""
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    19
__authors__ = [
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    20
  '"Todd Larsen" <tlarsen@google.com>',
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    21
  '"Sverre Rabbelier" <sverre@rabbelier.nl>',
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    22
]
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    23
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    24
from google.appengine.ext import db
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    25
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: 54
diff changeset
    26
from soc.models import base
316
9efdc7bc3565 Add missing blank lines between imports and sort all of the imports.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 181
diff changeset
    27
533
ba3309b2fd30 Move LINK_ID and SCOPE_PATH regular expressions to soc/models/linkable.py.
Todd Larsen <tlarsen@google.com>
parents: 391
diff changeset
    28
import soc.models.linkable
18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    29
import soc.models.proposal
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    30
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
533
ba3309b2fd30 Move LINK_ID and SCOPE_PATH regular expressions to soc/models/linkable.py.
Todd Larsen <tlarsen@google.com>
parents: 391
diff changeset
    32
class Task(soc.models.linkable.Linkable):
18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    33
  """Model of a Task, which is a Proposal to be completed by Contributors.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    34
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    35
  A Task brings along a Proposal that was used to initiate the Task.  A Task
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    36
  may have a unique collection of Reviews, in addition to those attached to
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    37
  the original Proposal.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    38
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    39
  A Task entity participates in the following relationships implemented
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    40
  as a db.ReferenceProperty elsewhere in another db.Model:
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    41
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    42
   contributors)  a required many:many relationship associating all of
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    43
     the Contributors to a Task to the specific Task.  See the
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    44
     TasksContributors model for details.
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    45
  """
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    46
 
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    47
  #: A required many:1 relationship with the Proposal on which the
391
849aa913e9c8 Address comments to r844 and r845.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 385
diff changeset
    48
  #: Task is based.  A Task may be based on only a single Proposal,
18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
  #: but a Proposal can be the foundation for multiple Tasks. The
391
849aa913e9c8 Address comments to r844 and r845.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 385
diff changeset
    50
  #: back-reference in the Proposal model is a Query named 'tasks'.
385
6d410bf49a82 Remove not used imports in models. Fix missing spaces in models when operator not preceded by a space. Add missing ugettext_lazy import to Proposal model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 316
diff changeset
    51
  proposal = db.ReferenceProperty(reference_class=soc.models.proposal.Proposal,
18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
                                  required=True,
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: 54
diff changeset
    53
                                  collection_name="tasks")
18
2e9454e4924e Initial definition of the Work Model.
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54