app/soc/models/program.py
author Daniel Bentley <dbentley@google.com>
Wed, 15 Apr 2009 08:01:17 +0000
changeset 2184 a1bda9afa5d0
parent 2138 70b4a5e90eb0
child 2716 9921ac952f13
permissions -rw-r--r--
Step 2 of moving to new seeding model. Create Seeder class, which abstracts some seeding. Move user to Seeder class, and make new OrganizationSeeder class. If people like this, I'll finish the rest soon. Patch by: Dan Bentley
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
643
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     2
#
1308
35b75ffcbb37 Partially reverted "Update the copyright notice for 2009."
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1307
diff changeset
     3
# Copyright 2008 the Melange authors.
643
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     4
#
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     8
#
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    10
#
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    16
771
0b1beae179f5 Typo and style fixes.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 769
diff changeset
    17
"""This module contains the Program Model.
0b1beae179f5 Typo and style fixes.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 769
diff changeset
    18
"""
643
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    19
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    20
__authors__ = [
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    21
  '"Sverre Rabbelier" <sverre@rabbelier.nl>',
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    22
]
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    23
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    24
649
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    25
from google.appengine.ext import db
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    26
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    27
from django.utils.translation import ugettext
643
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    28
1698
a8da5a620236 Switch Program to regular presence
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
    29
import soc.models.presence
766
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
    30
import soc.models.timeline
643
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    32
1698
a8da5a620236 Switch Program to regular presence
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
    33
class Program(soc.models.presence.Presence):
667
f96095df1433 Some more import sorting fixes and docstring typos in program modules and soc.views.helper.redirects module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 649
diff changeset
    34
  """The Program model, representing a Program ran by a Sponsor.
643
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    35
  """
b57d538a9dd3 Added programs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    36
649
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    37
  #: Required field storing name of the group.
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    38
  name = db.StringProperty(required=True,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    39
      verbose_name=ugettext('Name'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    40
  name.help_text = ugettext('Complete, formal name of the program.')
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    41
  name.example_text = ugettext(
849
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    42
      '<small><i>e.g.</i></small> <tt>Google Summer of Code 2009</tt>')
649
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    43
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    44
  #: Required field storing short name of the group.
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    45
  #: It can be used for displaying group as sidebar menu item.
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    46
  short_name = db.StringProperty(required=True,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    47
      verbose_name=ugettext('Short name'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    48
  short_name.help_text = ugettext('Short name used for sidebar menu')
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    49
  short_name.example_text = ugettext(
849
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    50
      '<small><i>e.g.</i></small> <tt>GSoC 2009</tt>')
649
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    51
688
125cad9596da Changed generic_name to group_label in models/program.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 667
diff changeset
    52
  #: Optional field used to relate it to other programs
125cad9596da Changed generic_name to group_label in models/program.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 667
diff changeset
    53
  #: For example, GSoC would be a group label for GSoC2008/GSoC2009
125cad9596da Changed generic_name to group_label in models/program.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 667
diff changeset
    54
  group_label = db.StringProperty(
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    55
      verbose_name=ugettext('Group label'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    56
  group_label.help_text = ugettext(
740
caa143c799a7 Added some example_text to program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 688
diff changeset
    57
      'Optional name used to relate this program to others.')
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    58
  group_label.example_text = ugettext(
849
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    59
      '<small><i>e.g.</i></small> <tt>GSoC</tt>')
649
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    60
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    61
  #: Required field storing description of the group.
95a41542e693 Finish Program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 643
diff changeset
    62
  description = db.TextProperty(required=True,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    63
      verbose_name=ugettext('Description'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    64
  description.example_text = ugettext(
849
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    65
      '<small><i>for example:</i></small><br>'
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    66
      '<tt><b>GSoC 2009</b> is the <i>Google Summer of Code</i>,'
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    67
      ' but in <u>2009</u>!</tt><br><br>'
c193ac0ef593 Support HTML tags in form field example_text column.
Todd Larsen <tlarsen@google.com>
parents: 771
diff changeset
    68
      '<small><i>(rich text formatting is supported)</i></small>')
1966
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    69
1969
236f677c158c Typo and thinko fix in accepted_orgs_msg
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1966
diff changeset
    70
  #: Message displayed at the top of the accepted organizations page.
1966
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    71
  accepted_orgs_msg = db.TextProperty(required=False,
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    72
      verbose_name=ugettext('Accepted Organizations Message'))
1969
236f677c158c Typo and thinko fix in accepted_orgs_msg
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1966
diff changeset
    73
  accepted_orgs_msg.example_text = ugettext(
1966
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    74
      '<small><i>for example:</i></small><br>'
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    75
      '<tt>Students who wish to participate can find out more about'
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    76
      ' each mentoring organization below.</tt><br><br>'
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    77
      '<small><i>(rich text formatting is supported)</i></small>')
fcf246b379a7 Add an non-required accepted_orgs_msg property to program profile
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1698
diff changeset
    78
911
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    79
  #: Required field storing application/tasks limit of the program.
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    80
  apps_tasks_limit = db.IntegerProperty(required=True,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    81
      verbose_name=ugettext('Application/Tasks Limit'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    82
  apps_tasks_limit.example_text = ugettext(
911
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    83
      '<small><i>e.g.</i></small> '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    84
      '<tt><b>20</b> is the student applications limit for <i>Google Summer '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    85
      'of Code</i>, but <b>1</b> is the tasks limit that the student can work '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    86
      'on at the same time during <i>GHOP</i></tt>')
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
    87
2138
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    88
  #: Optional field storing minimum slots per organization
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    89
  min_slots = db.IntegerProperty(required=False, default=2,
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    90
      verbose_name=ugettext('Min slots per org'))
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    91
  min_slots.help_text = ugettext(
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    92
      'The amount of slots each org should get at the very least')
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    93
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    94
  #: Optional field storing maximum slots per organization
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    95
  max_slots = db.IntegerProperty(required=False, default=50,
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    96
      verbose_name=ugettext('Max slots per org'))
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    97
  max_slots.help_text = ugettext(
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    98
      'The amount of slots each organization should get at most')
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
    99
911
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   100
  #: Required field storing slots limit of the program.
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   101
  slots = db.IntegerProperty(required=True,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
   102
      verbose_name=ugettext('Slots'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
   103
  slots.example_text = ugettext(
911
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   104
      '<small><i>e.g.</i></small> '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   105
      '<tt><b>500</b> might be an amount of slots for <i>Google Summer '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   106
      'of Code</i>, which indicates how many students can be accepted '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   107
      'to the program.<br>For <i>GHOP</i> this indicates how '
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   108
      'many tasks can be completed.</tt>')
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   109
2138
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
   110
  #: Optional field storing the allocation of slots for this program
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
   111
  slots_allocation = db.TextProperty(required=False,
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
   112
      verbose_name=ugettext('the allocation of slots'))
70b4a5e90eb0 Store min and max slots in the program model
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1969
diff changeset
   113
769
a0ee643fe832 Added an elementary workflow choosing method to program creation.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 766
diff changeset
   114
  #: Required field storing the type of workflow this program has
a0ee643fe832 Added an elementary workflow choosing method to program creation.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 766
diff changeset
   115
  workflow = db.StringProperty(required=True,
a0ee643fe832 Added an elementary workflow choosing method to program creation.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 766
diff changeset
   116
      choices=['gsoc', 'ghop'],
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
   117
      verbose_name= ugettext('Workflow type'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
   118
  workflow.example_text = ugettext(
911
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   119
      '<tt><b>Project-based</b> for GSoC workflow type,<br>' 
efce8ee13b19 Add slots and student applications/tasks limit integer properties to the Program model.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 849
diff changeset
   120
      '<b>Task-based</b> for GHOP workflow type.</tt>')
766
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
   121
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
   122
  #: Required 1:1 relationship indicating the Program the Timeline
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
   123
  #: belongs to.
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
   124
  timeline = db.ReferenceProperty(reference_class=soc.models.timeline.Timeline,
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
   125
                                 required=True, collection_name="program",
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
   126
                                 verbose_name=ugettext('Timeline'))
1051
c532dd9def48 Create a new Tossed layer in the MVC
Sverre Rabbelier <srabbelier@gmail.com>
parents: 970
diff changeset
   127
1260
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   128
  #: Whether the slots allocations are visible
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   129
  allocations_visible = db.BooleanProperty(default=False,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   130
      verbose_name=ugettext('Slot allocations visible'))
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   131
  allocations_visible.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   132
      'Field used to indicate if the slot allocations should be visible.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   133
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   134
  #: Document reference property used for the Org Admin Agreement
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   135
  org_admin_agreement = db.ReferenceProperty(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   136
    reference_class=soc.models.document.Document,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   137
    verbose_name=ugettext('Organization Admin Agreement'),
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   138
    collection_name='org_admin_agreement')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   139
  org_admin_agreement.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   140
      'Document containing optional Mentor Agreement for participating as a '
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   141
      'Organization admin.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   142
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   143
  #: Document reference property used for the Mentor Agreement
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   144
  mentor_agreement = db.ReferenceProperty(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   145
    reference_class=soc.models.document.Document,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   146
    verbose_name=ugettext('Mentor Agreement'),
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   147
    collection_name='mentor_agreement')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   148
  mentor_agreement.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   149
      'Document containing optional Mentor Agreement for participating as a '
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   150
      'Mentor.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   151
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   152
  #: Document reference property used for the Student Agreement
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   153
  student_agreement = db.ReferenceProperty(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   154
    reference_class=soc.models.document.Document,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   155
    verbose_name=ugettext('Student Agreement'),
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   156
    collection_name='student_agreement')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   157
  student_agreement.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   158
      'Document containing optional Student Agreement for participating as a '
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   159
      'Student.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   160
1107
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   161
  #: Status of the program
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   162
  #: Invisible: Program Stealth-Mode Visible to Hosts and Devs only
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   163
  #: Visible: Visible to everyone.
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   164
  #: Inactive: Not visible in sidebar but can be reached for date retention
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   165
  #: Invalid: Not visible or editable by anyone
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   166
  status = db.StringProperty(required=True, default='invisible',
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   167
      verbose_name=ugettext('Program Status'),
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   168
      choices=['invisible', 'visible', 'inactive', 'invalid'])
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   169
  status.example_text = ugettext(
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   170
      '<tt>Invisible: Program Stealth-Mode Visible to Hosts and Devs only.<br/>'
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   171
      'Visible: Visible to everyone.<br/>'
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   172
      'Inactive: Not visible in sidebar, not editable.<br/>'
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   173
      'Invalid: Not visible or editable by anyone.</tt>')