app/ghop/models/program.py
author Pawel Solyga <Pawel.Solyga@gmail.com>
Mon, 01 Jun 2009 22:23:46 +0200
changeset 2376 feec28b50f1b
parent 2347 c5a397f57d65
permissions -rw-r--r--
Extend taggable-mixin to support different Tag models. Usage is pretty simple. Tag model is default in Taggable constructor but you can call it with different model like GHOPTaskType that inherits from Tag model. Both Taggable and Tag models have been updated and they don't use hardcoded Tag model anymore and instead use cls of class methods or self.__class__. In case of Taggable it's self.__tag_model.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2347
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     2
#
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     3
# Copyright 2009 the Melange authors.
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     4
#
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     8
#
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    10
#
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    16
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    17
"""This module contains the GHOP specific Program Model.
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    18
"""
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    19
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    20
__authors__ = [
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    21
  '"Madhusudan.C.S" <madhusudancs@gmail.com>',
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    22
]
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    23
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    24
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    25
from google.appengine.ext import db
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    26
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    27
from django.utils.translation import ugettext
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    28
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    29
import soc.models.program
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    30
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    31
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    32
class GHOPProgram(soc.models.program.Program):
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    33
  """GHOP Program model extends the basic Program model.
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    34
  """
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    35
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    36
  #: Property that contains the latest date of birth before which a Student
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    37
  #: can participate
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    38
  student_min_age = db.DateTimeProperty(required=False)
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    39
  student_min_age.help_text = ugettext(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    40
      'Minimum age of the student to sign-up. Given by the latest birthdate allowed')
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    41
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    42
  #: Required property containing the number of Tasks Students can work
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    43
  #: on simultaneously. For GHOP it is 1
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    44
  nr_simultaneous_tasks = db.IntegerProperty(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    45
      required=True, default=1, 
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    46
      verbose_name=ugettext('Simultaneous tasks'))
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    47
  nr_simultaneous_tasks.help_text = ugettext(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    48
      'Number of tasks students can work on simultaneously in the program.')
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    49
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    50
  #: Property containing the number of winners per Organization
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    51
  nr_winners = db.IntegerProperty(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    52
      required=True, default=0,
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    53
      verbose_name=ugettext('Winners per organization'))
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    54
  nr_winners.help_text = ugettext(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    55
      'Number of winners an organization can announce.')
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    56
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    57
  #: Property containing the number of runner ups per Organization
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    58
  nr_runnerups = db.IntegerProperty(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    59
      required=True, default=0,
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    60
      verbose_name=ugettext('Runner-ups per organization'))
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    61
  nr_runnerups.help_text = ugettext(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    62
      'Number of runner-ups an organization can announce.')
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    63
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    64
  #: A list of difficulty levels that can be assigned for each Task created
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    65
  task_difficulties = db.StringListProperty(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    66
      required=True, default=[''],
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    67
      verbose_name=ugettext('Difficulty levels'))
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    68
  task_difficulties.help_text = ugettext(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    69
      'List all the difficulty levels that can be assigned to a task.')
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    70
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    71
  #: A list of task types that a Task can belong to
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    72
  task_types = db.StringListProperty(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    73
      required=True, default=['Any'],
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    74
      verbose_name=ugettext('Task Types'))
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    75
  task_rypes.help_text = ugettext(
c5a397f57d65 Added several models related to the GHOP workflow.
Madhusudan C.S. <madhusudancs@gmail.com>
parents:
diff changeset
    76
      'List all the types a task can be in.')