30 |
30 |
31 |
31 |
32 class GHOPProgram(soc.models.program.Program): |
32 class GHOPProgram(soc.models.program.Program): |
33 """GHOP Program model extends the basic Program model. |
33 """GHOP Program model extends the basic Program model. |
34 """ |
34 """ |
35 |
|
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.group = ugettext('Contest Rules') |
|
41 student_min_age.help_text = ugettext( |
|
42 'Minimum age of the student to sign-up in years.') |
|
43 |
|
44 #: Property that contains the date as of which above student |
|
45 #: minimum age requirement holds. This is a DateTimeProperty because |
|
46 #: programs might run in a different timezone then the Appengine Server |
|
47 #: is running on. |
|
48 student_min_age_as_of = db.DateTimeProperty( |
|
49 required=True, verbose_name=ugettext('Minimum age as of')) |
|
50 student_min_age_as_of.group = ugettext('Contest Rules') |
|
51 student_min_age_as_of.help_text = ugettext( |
|
52 'Date as of which the student minimum age requirement holds.') |
|
53 |
35 |
54 #: Required property containing the number of Tasks Students can work |
36 #: Required property containing the number of Tasks Students can work |
55 #: on simultaneously. For GHOP it is 1 |
37 #: on simultaneously. For GHOP it is 1 |
56 nr_simultaneous_tasks = db.IntegerProperty( |
38 nr_simultaneous_tasks = db.IntegerProperty( |
57 required=True, default=1, |
39 required=True, default=1, |