Changed the property that holds the minimum age required for Students to participate...
[Melange.git] / app / soc / modules / ghop / models / program.py
blob857d628bb44520dca6d63267dc2d56f33a99a1d1
1 #!/usr/bin/python2.5
3 # Copyright 2009 the Melange authors.
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
9 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 """This module contains the GHOP specific Program Model.
18 """
20 __authors__ = [
21 '"Madhusudan.C.S" <madhusudancs@gmail.com>',
25 from google.appengine.ext import db
27 from django.utils.translation import ugettext
29 import soc.models.program
32 class GHOPProgram(soc.models.program.Program):
33 """GHOP Program model extends the basic Program model.
34 """
36 #: Property that contains the minimum age of a student allowed to
37 #: participate
38 student_min_age = db.IntegerProperty(
39 required=True, verbose_name=ugettext('Student minimum age'))
40 student_min_age.help_text = ugettext(
41 'Minimum age of the student to sign-up in years.')
43 #: Property that contains the date as of which above student
44 #: minimum age requirement holds. This is a DateTimeProperty because
45 #: programs might run in a different timezone then the Appengine Server
46 #: is running on.
47 student_min_age_as_of = db.DateTimeProperty(
48 required=True, verbose_name=ugettext('Minimum age as of'))
49 student_min_age_as_of.help_text = ugettext(
50 'Date as of which the student minimum age requirement holds.')
52 #: Required property containing the number of Tasks Students can work
53 #: on simultaneously. For GHOP it is 1
54 nr_simultaneous_tasks = db.IntegerProperty(
55 required=True, default=1,
56 verbose_name=ugettext('Simultaneous tasks'))
57 nr_simultaneous_tasks.help_text = ugettext(
58 'Number of tasks students can work on simultaneously in the program.')
60 #: Property containing the number of winners per Organization
61 nr_winners = db.IntegerProperty(
62 required=True, default=0,
63 verbose_name=ugettext('Winners per organization'))
64 nr_winners.help_text = ugettext(
65 'Number of winners an organization can announce.')
67 #: Property containing the number of runner ups per Organization
68 nr_runnerups = db.IntegerProperty(
69 required=True, default=0,
70 verbose_name=ugettext('Runner-ups per organization'))
71 nr_runnerups.help_text = ugettext(
72 'Number of runner-ups an organization can announce.')
74 #: A list of difficulty levels that can be assigned for each Task created
75 task_difficulties = db.StringListProperty(
76 required=True, default=[''],
77 verbose_name=ugettext('Difficulty levels'))
78 task_difficulties.help_text = ugettext(
79 'List all the difficulty levels that can be assigned to a task.')
81 #: A list of task types that a Task can belong to
82 task_types = db.StringListProperty(
83 required=True, default=['Any'],
84 verbose_name=ugettext('Task Types'))
85 task_types.help_text = ugettext(
86 'List all the types a task can be in.')