blob: 6ca3b2d2e2d9ab833473362c30ba2bd997df4960 [file] [log] [blame]
#!/usr/bin/env 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 Student Model."""
from google.appengine.ext import db
from django.utils.translation import ugettext
from soc.models import countries
import soc.models.role
import soc.models.school
class Student(soc.models.role.Role):
"""Student details for a specific Program.
"""
school_name = db.StringProperty(required=True,
verbose_name=ugettext('School Name'))
school_name.group = ugettext("5. Education")
school_name.help_text = ugettext(
'Please enter the full name of your school, college or university in'
' this field. Please use the complete formal name of your school, e.g.'
' UC Berkeley instead of Cal or UCB. It would be most wonderful if you'
' could provide your school\'s name in English, as all the program '
'administrators speak English as their first language and it will make'
' it much easier for us to assemble program statistics, etc., later if'
' we can easily read the name of your school.')
school_country = db.StringProperty(required=True,
verbose_name=ugettext('School Country/Territory'),
choices=countries.COUNTRIES_AND_TERRITORIES)
school_country.group = ugettext("5. Education")
#: School home page URL, not required here but enforced in the form for
#: backwards compatibility.
school_home_page = db.LinkProperty(
required=False, verbose_name=ugettext("School Home Page URL"))
school_home_page.group = ugettext("5. Education")
#: School type can be only High school for GCI and can be University
#: for GSoC.
school_type = db.StringProperty(required=False,
verbose_name=ugettext('School Type'),
choices=['University', 'High School'])
school_type.group = ugettext("5. Education")
major = db.StringProperty(required=False,
verbose_name=ugettext('Major Subject'))
major.group = ugettext("5. Education")
degree = db.StringProperty(required=False,
verbose_name=ugettext('Degree'),
choices=['Undergraduate', 'Master', 'PhD'])
degree.group = ugettext("5. Education")
expected_graduation = db.IntegerProperty(required=True,
verbose_name=ugettext('Expected Graduation Year'))
expected_graduation.help_text = ugettext("Pick your expected graduation year")
expected_graduation.group = ugettext("5. Education")
#: A many:1 relationship that ties multiple Students to the
#: School that they attend.
school = db.ReferenceProperty(reference_class=soc.models.school.School,
required=False, collection_name='the_students')
can_we_contact_you = db.BooleanProperty(verbose_name=ugettext(
'Can we contact you?'))
can_we_contact_you.help_text = ugettext(
'Please check here if you would not mind being contacted by the Program'
' Administrators for follow up with members of the press who would like'
' to interview you about the program. You will not be contacted unless '
' you successfully complete your project. <br />'
'<b>Please note that checking this box has no effect on your chances'
' of being accepted into the program</b>.')
can_we_contact_you.group = ugettext("2. Contact Info (Private)")