65 '<small><i>for example:</i></small><br>' |
65 '<small><i>for example:</i></small><br>' |
66 '<tt><b>GSoC 2009</b> is the <i>Google Summer of Code</i>,' |
66 '<tt><b>GSoC 2009</b> is the <i>Google Summer of Code</i>,' |
67 ' but in <u>2009</u>!</tt><br><br>' |
67 ' but in <u>2009</u>!</tt><br><br>' |
68 '<small><i>(rich text formatting is supported)</i></small>') |
68 '<small><i>(rich text formatting is supported)</i></small>') |
69 |
69 |
|
70 #: Required field storing application/tasks limit of the program. |
|
71 apps_tasks_limit = db.IntegerProperty(required=True, |
|
72 verbose_name=ugettext_lazy('Application/Tasks Limit')) |
|
73 apps_tasks_limit.example_text = ugettext_lazy( |
|
74 '<small><i>e.g.</i></small> ' |
|
75 '<tt><b>20</b> is the student applications limit for <i>Google Summer ' |
|
76 'of Code</i>, but <b>1</b> is the tasks limit that the student can work ' |
|
77 'on at the same time during <i>GHOP</i></tt>') |
|
78 |
|
79 #: Required field storing slots limit of the program. |
|
80 slots = db.IntegerProperty(required=True, |
|
81 verbose_name=ugettext_lazy('Slots')) |
|
82 slots.example_text = ugettext_lazy( |
|
83 '<small><i>e.g.</i></small> ' |
|
84 '<tt><b>500</b> might be an amount of slots for <i>Google Summer ' |
|
85 'of Code</i>, which indicates how many students can be accepted ' |
|
86 'to the program.<br>For <i>GHOP</i> this indicates how ' |
|
87 'many tasks can be completed.</tt>') |
|
88 |
70 #: Required field storing the type of workflow this program has |
89 #: Required field storing the type of workflow this program has |
71 workflow = db.StringProperty(required=True, |
90 workflow = db.StringProperty(required=True, |
72 choices=['gsoc', 'ghop'], |
91 choices=['gsoc', 'ghop'], |
73 verbose_name= ugettext_lazy('Workflow type')) |
92 verbose_name= ugettext_lazy('Workflow type')) |
74 workflow.example_text = ugettext_lazy( |
93 workflow.example_text = ugettext_lazy( |
75 '<b><tt>Project-based</tt></b> for GSoC workflow type,<br>' |
94 '<tt><b>Project-based</b> for GSoC workflow type,<br>' |
76 ' <b><tt>Task-based</tt></b> for GHOP workflow type.') |
95 '<b>Task-based</b> for GHOP workflow type.</tt>') |
77 |
96 |
78 #: Required 1:1 relationship indicating the Program the Timeline |
97 #: Required 1:1 relationship indicating the Program the Timeline |
79 #: belongs to. |
98 #: belongs to. |
80 timeline = db.ReferenceProperty(reference_class=soc.models.timeline.Timeline, |
99 timeline = db.ReferenceProperty(reference_class=soc.models.timeline.Timeline, |
81 required=True, collection_name="program", |
100 required=True, collection_name="program", |