app/soc/modules/ghop/logic/models/student.py
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 2818 4107ff19203a
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2818
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
#
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
# Copyright 2009 the Melange authors.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
#
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
#
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
#
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    16
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    17
"""GHOPStudent (Model) query functions.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
"""
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    20
__authors__ = [
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    21
    '"Madhusudan.C.S" <madhusudancs@gmail.com>'
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    22
  ]
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    23
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    24
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    25
from google.appengine.api.labs import taskqueue
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    26
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    27
from soc.logic.models import student
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    28
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    29
import soc.models.student
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
from soc.modules.ghop.logic.models import task as ghop_task_logic
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
import soc.modules.ghop.logic.models.program
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    34
import soc.modules.ghop.models.student
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    35
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    36
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    37
class Logic(student.Logic):
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    38
  """Logic methods for the GHOPStudent model.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
  """
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    41
  def __init__(self, model=soc.modules.ghop.models.student.GHOPStudent,
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    42
               base_model=soc.models.student.Student,
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    43
               scope_logic=soc.modules.ghop.logic.models.program,
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    44
               role_name='ghop_student', disallow_last_resign=False):
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    45
    """Defines the name, key_name and model for this entity.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    46
    """
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    47
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    48
    super(Logic, self).__init__(model, base_model=base_model,
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    49
                                scope_logic=scope_logic, role_name=role_name,
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    50
                                disallow_last_resign=disallow_last_resign)
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    51
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    52
  def _onCreate(self, entity):
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    53
    """Update all the tasks the student has claimed or are awaiting
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    54
    registration.
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    55
    """
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    56
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    57
    task_params = {
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    58
        'student_key': entity.key().id_or_name(),
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    59
        }
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    60
    task_url = '/tasks/ghop/task/update/student_status'
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    61
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    62
    new_task = taskqueue.Task(params=task_params, url=task_url)
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    63
    new_task.add('ghop-update')
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    64
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    65
    super(Logic, self)._onCreate(entity)
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    66
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    67
4107ff19203a Added GHOP Student Logic.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    68
logic = Logic()