Implements base.Logic functions in home_settings, site_settings and work
This patch implements the base.Logic funtions needed for making
logic/key_name.py obsolete. This patch defines the needed functions
in home_settings, site_settings and work. All modules in logic/models
now have these functions defined.
logic/models/site_settings.py now inherits from
logic/models/home_settings.py because of their similar connection in
the corresponding models. Please note that the self._keyName for
these two modules still points to logic/key_name.py since entity_type
is still used in views/home.py.
A partial_path and link_name were added to HomeSettings as requested
by SRabbelier.
#!/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 Task Model."""
__authors__ = [
'"Todd Larsen" <tlarsen@google.com>',
'"Sverre Rabbelier" <sverre@rabbelier.nl>',
]
from google.appengine.ext import db
from soc.models import base
import soc.models.proposal
class Task(base.ModelWithFieldAttributes):
"""Model of a Task, which is a Proposal to be completed by Contributors.
A Task brings along a Proposal that was used to initiate the Task. A Task
may have a unique collection of Reviews, in addition to those attached to
the original Proposal.
A Task entity participates in the following relationships implemented
as a db.ReferenceProperty elsewhere in another db.Model:
contributors) a required many:many relationship associating all of
the Contributors to a Task to the specific Task. See the
TasksContributors model for details.
"""
#: A required many:1 relationship with the Proposal on which the
#: Task is based. A Task may be based on only a single Proposal,
#: but a Proposal can be the foundation for multiple Tasks. The
#: back-reference in the Proposal model is a Query named 'tasks'.
proposal = db.ReferenceProperty(reference_class=soc.models.proposal.Proposal,
required=True,
collection_name="tasks")