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 |
35 |
36 #: Property that contains the latest date of birth before which a Student |
36 #: Property that contains the minimum age of a student allowed to |
37 #: can participate |
37 #: participate |
38 student_min_age = db.DateTimeProperty(required=False) |
38 student_min_age = db.IntegerProperty( |
|
39 required=True, verbose_name=ugettext('Student minimum age')) |
39 student_min_age.help_text = ugettext( |
40 student_min_age.help_text = ugettext( |
40 'Minimum age of the student to sign-up. Given by the latest birthdate allowed') |
41 'Minimum age of the student to sign-up in years.') |
|
42 |
|
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.') |
41 |
51 |
42 #: Required property containing the number of Tasks Students can work |
52 #: Required property containing the number of Tasks Students can work |
43 #: on simultaneously. For GHOP it is 1 |
53 #: on simultaneously. For GHOP it is 1 |
44 nr_simultaneous_tasks = db.IntegerProperty( |
54 nr_simultaneous_tasks = db.IntegerProperty( |
45 required=True, default=1, |
55 required=True, default=1, |