app/soc/models/program.py
author Sverre Rabbelier <srabbelier@gmail.com>
Tue, 17 Feb 2009 16:36:49 +0000
changeset 1371 2d97dbbb4d99
parent 1308 35b75ffcbb37
child 1698 a8da5a620236
permissions -rw-r--r--
Implemented simple group sorted using numerical ordering See role.py for some example usages. Note that the reason ToS does not appear seperately is due to the fact that it is defined as a regular field which does not take the group field from the one defined in the model. Patch by: Sverre Rabbelier
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
1053
3b9552cf748a Rename the confusing Tossed Model class to PresenceWithToS.
Todd Larsen <tlarsen@google.com>
parents: 1052
diff changeset
    29
import soc.models.presence_with_tos
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
1053
3b9552cf748a Rename the confusing Tossed Model class to PresenceWithToS.
Todd Larsen <tlarsen@google.com>
parents: 1052
diff changeset
    33
class Program(soc.models.presence_with_tos.PresenceWithToS):
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>')
769
a0ee643fe832 Added an elementary workflow choosing method to program creation.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 766
diff changeset
    69
  
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
    70
  #: 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
    71
  apps_tasks_limit = db.IntegerProperty(required=True,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    72
      verbose_name=ugettext('Application/Tasks Limit'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    73
  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
    74
      '<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
    75
      '<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
    76
      '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
    77
      '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
    78
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 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
    80
  slots = 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('Slots'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    82
  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
    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>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
    85
      '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
    86
      '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
    87
      '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
    88
769
a0ee643fe832 Added an elementary workflow choosing method to program creation.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 766
diff changeset
    89
  #: 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
    90
  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
    91
      choices=['gsoc', 'ghop'],
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    92
      verbose_name= ugettext('Workflow type'))
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
    93
  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
    94
      '<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
    95
      '<b>Task-based</b> for GHOP workflow type.</tt>')
766
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
    96
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
    97
  #: Required 1:1 relationship indicating the Program the Timeline
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
    98
  #: belongs to.
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
    99
  timeline = db.ReferenceProperty(reference_class=soc.models.timeline.Timeline,
046b4b51eabf Made Program reference Timeline
Sverre Rabbelier <srabbelier@gmail.com>
parents: 740
diff changeset
   100
                                 required=True, collection_name="program",
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 911
diff changeset
   101
                                 verbose_name=ugettext('Timeline'))
1051
c532dd9def48 Create a new Tossed layer in the MVC
Sverre Rabbelier <srabbelier@gmail.com>
parents: 970
diff changeset
   102
1260
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   103
  #: Whether the slots allocations are visible
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   104
  allocations_visible = db.BooleanProperty(default=False,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   105
      verbose_name=ugettext('Slot allocations visible'))
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   106
  allocations_visible.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   107
      '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
   108
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   109
  #: 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
   110
  org_admin_agreement = db.ReferenceProperty(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   111
    reference_class=soc.models.document.Document,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   112
    verbose_name=ugettext('Organization Admin Agreement'),
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   113
    collection_name='org_admin_agreement')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   114
  org_admin_agreement.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   115
      '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
   116
      'Organization admin.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   117
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   118
  #: 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
   119
  mentor_agreement = db.ReferenceProperty(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   120
    reference_class=soc.models.document.Document,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   121
    verbose_name=ugettext('Mentor Agreement'),
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   122
    collection_name='mentor_agreement')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   123
  mentor_agreement.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   124
      '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
   125
      'Mentor.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   126
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   127
  #: 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
   128
  student_agreement = db.ReferenceProperty(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   129
    reference_class=soc.models.document.Document,
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   130
    verbose_name=ugettext('Student Agreement'),
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   131
    collection_name='student_agreement')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   132
  student_agreement.help_text = ugettext(
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   133
      '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
   134
      'Student.')
594c6b500378 Added Agreement properties to Program Model.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1107
diff changeset
   135
1107
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   136
  #: Status of the program
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   137
  #: 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
   138
  #: Visible: Visible to everyone.
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   139
  #: 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
   140
  #: Invalid: Not visible or editable by anyone
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   141
  status = db.StringProperty(required=True, default='invisible',
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   142
      verbose_name=ugettext('Program Status'),
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   143
      choices=['invisible', 'visible', 'inactive', 'invalid'])
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   144
  status.example_text = ugettext(
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   145
      '<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
   146
      'Visible: Visible to everyone.<br/>'
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   147
      'Inactive: Not visible in sidebar, not editable.<br/>'
a878188e225c Added status to program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1057
diff changeset
   148
      'Invalid: Not visible or editable by anyone.</tt>')