equal
deleted
inserted
replaced
22 ] |
22 ] |
23 |
23 |
24 from google.appengine.ext import db |
24 from google.appengine.ext import db |
25 |
25 |
26 from soc import models |
26 from soc import models |
|
27 from soc.models import base |
27 import soc.models.proposal |
28 import soc.models.proposal |
28 |
29 |
29 |
30 |
30 class Task(db.Model): |
31 class Task(base.ModelWithFieldAttributes): |
31 """Model of a Task, which is a Proposal to be completed by Contributors. |
32 """Model of a Task, which is a Proposal to be completed by Contributors. |
32 |
33 |
33 A Task brings along a Proposal that was used to initiate the Task. A Task |
34 A Task brings along a Proposal that was used to initiate the Task. A Task |
34 may have a unique collection of Reviews, in addition to those attached to |
35 may have a unique collection of Reviews, in addition to those attached to |
35 the original Proposal. |
36 the original Proposal. |
46 #: Task is based. A Task may be based on only a single Proposal, |
47 #: Task is based. A Task may be based on only a single Proposal, |
47 #: but a Proposal can be the foundation for multiple Tasks. The |
48 #: but a Proposal can be the foundation for multiple Tasks. The |
48 #: back-reference in the Proposal model is a Query named 'tasks'. |
49 #: back-reference in the Proposal model is a Query named 'tasks'. |
49 proposal = db.ReferenceProperty(reference_class=models.proposal.Proposal, |
50 proposal = db.ReferenceProperty(reference_class=models.proposal.Proposal, |
50 required=True, |
51 required=True, |
51 collection_name="tasks") |
52 collection_name="tasks") |
52 |
53 |