app/soc/models/student.py
changeset 207 8ecc2e4198cd
child 1077 8e0a17067b35
equal deleted inserted replaced
206:832335761384 207:8ecc2e4198cd
       
     1 #!/usr/bin/python2.5
       
     2 #
       
     3 # Copyright 2008 the Melange authors.
       
     4 #
       
     5 # Licensed under the Apache License, Version 2.0 (the "License");
       
     6 # you may not use this file except in compliance with the License.
       
     7 # You may obtain a copy of the License at
       
     8 # 
       
     9 #   http://www.apache.org/licenses/LICENSE-2.0
       
    10 # 
       
    11 # Unless required by applicable law or agreed to in writing, software
       
    12 # distributed under the License is distributed on an "AS IS" BASIS,
       
    13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       
    14 # See the License for the specific language governing permissions and
       
    15 # limitations under the License.
       
    16 
       
    17 """This module contains the Contributor Model."""
       
    18 
       
    19 __authors__ = [
       
    20   '"Todd Larsen" <tlarsen@google.com>',
       
    21 ]
       
    22 
       
    23 
       
    24 from google.appengine.ext import db
       
    25 
       
    26 import soc.models.contributor
       
    27 import soc.models.school
       
    28 
       
    29 
       
    30 class Student(soc.models.contributor.Contributor):
       
    31   """Student Contributor details for a specific Program.
       
    32 
       
    33   Some Students author Proposals to be reviewed by Reviewers (Mentors),
       
    34   followed by Hosts, who then convert them into Tasks (usually a single
       
    35   Task, in the case of GSoC).  In GSoC, this conversion of a Proposal into
       
    36   a Task grants the Student entry into the Program for that year, and is
       
    37   referred to as being "accepted".
       
    38 
       
    39   Other Students claim Proposals that were written by Reviewers (Mentors),
       
    40   converting them into Tasks (but only a single Task at a time can be
       
    41   claimed by a Student, in the case of GHOP).
       
    42   """
       
    43 
       
    44   #: A required many:1 relationship that ties multiple Students to the
       
    45   #: School that they attend.  A Student cannot exist unassociated with
       
    46   #: a School.  The back-reference in the School model is a Query
       
    47   #: named 'students'.
       
    48   school = db.ReferenceProperty(reference_class=soc.models.school.School,
       
    49                                 required=True, collection_name='students')
       
    50