app/soc/tasks/updates/module_conversion.py
author Lennard de Rijk <ljvderijk@gmail.com>
Sun, 18 Oct 2009 16:52:38 +0200
changeset 3021 baeb847b88e6
parent 3020 b2c97cbba7df
child 3022 8ade9aac79f9
permissions -rw-r--r--
Added GradingSurveyGroup update to the Module Conversion.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2973
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     2
#
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     3
# Copyright 2009 the Melange authors.
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     4
#
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     8
#
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    10
#
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    16
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    17
"""The module conversion updates are defined in this module.
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    18
"""
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    19
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    20
__authors__ = [
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    21
  '"Lennard de Rijk" <ljvderijk@gmail.com>',
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    22
  ]
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    23
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    24
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    25
from google.appengine.api.labs import taskqueue
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    26
from google.appengine.ext import db
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    27
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    28
from django.http import HttpResponse
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    29
3008
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
    30
from soc.logic.models import survey as survey_logic
3009
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
    31
from soc.logic.models import survey_record as survey_record_logic
3019
f106f825c4c9 Fixed module conversion imports.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3014
diff changeset
    32
from soc.logic.models.document import logic as document_logic
3021
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
    33
from soc.logic.models.grading_survey_group import logic as \
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
    34
    grading_survey_group_logic
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
    35
from soc.logic.models.mentor import logic as mentor_logic
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
    36
from soc.logic.models.org_admin import logic as org_admin_logic
2997
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
    37
from soc.logic.models.organization import logic as org_logic
3000
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
    38
from soc.logic.models.program import logic as program_logic
3006
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
    39
from soc.logic.models.review import logic as review_logic
3000
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
    40
from soc.logic.models.student import logic as student_logic
3007
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
    41
from soc.logic.models.student_project import logic as student_project_logic
3014
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
    42
from soc.logic.models.student_proposal import logic as student_proposal_logic
3011
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
    43
from soc.logic.models.timeline import logic as timeline_logic
2996
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
    44
from soc.tasks.helper import decorators
2973
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    45
from soc.tasks.helper import error_handler
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    46
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    47
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    48
# batch size to use when going through the entities
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    49
DEF_BATCH_SIZE = 10
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    50
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    51
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    52
def startUpdateWithUrl(request, task_url):
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    53
  """Spawns an update task for the given task URL.
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    54
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    55
  Args:
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    56
    request: Django Request object
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    57
    task_url: The URL used to run this update task
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    58
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    59
  Returns:
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    60
    True iff the new task is successfully added to the Task Queue API
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    61
  """
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    62
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    63
  new_task = taskqueue.Task(url=task_url)
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    64
  new_task.add()
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    65
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    66
  return True
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    67
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    68
2996
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
    69
@decorators.iterative_task(program_logic)
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
    70
def runProgramConversionUpdate(request, entities, context, *args, **kwargs):
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
    71
  """AppEngine Task that converts Programs into GSoCPrograms.
2973
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    72
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    73
  Args:
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    74
    request: Django Request object
2996
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
    75
    entities: list of Program entities to convert
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
    76
    context: the context of this task
2973
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    77
  """
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    78
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    79
  from soc.modules.gsoc.models.program import GSoCProgram
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    80
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    81
  # get all the properties that are part of each Programs
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    82
  program_model = program_logic.getModel()
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    83
  program_properties = program_model.properties().keys()
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    84
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    85
  # use this to store all the new GSoCPrograms
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    86
  gsoc_programs = []
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    87
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    88
  for entity in entities:
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    89
    gsoc_properties = {}
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    90
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    91
    for program_property in program_properties:
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    92
      # copy over all the information from the program entity
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    93
      gsoc_properties[program_property] = getattr(entity, program_property)
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    94
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    95
    # create the new GSoCProgram entity and prepare it to be stored
2997
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
    96
    gsoc_program_entity = GSoCProgram(key_name=entity.key().name(),
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
    97
                                      **gsoc_properties)
2973
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    98
    gsoc_programs.append(gsoc_program_entity)
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    99
2999
d933a6da5eef Only store all the entities once in the ModuleConversion, after the for loop.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2998
diff changeset
   100
  # store all the new GSoCPrograms
d933a6da5eef Only store all the entities once in the ModuleConversion, after the for loop.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2998
diff changeset
   101
  db.put(gsoc_programs)
2973
ba3f2522e8df Added first version of the 1st step in the module conversion process.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   102
2996
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
   103
  # task completed, return
9a62e3cad4a8 Use the iterative task iterator for the ProgramConversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2973
diff changeset
   104
  return
2997
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   105
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   106
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   107
@decorators.iterative_task(org_logic)
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   108
def runOrgConversionUpdate(request, entities, context, *args, **kwargs):
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   109
  """AppEngine Task that converts Organizations into GSoCOrganizations.
2997
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   110
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   111
  Args:
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   112
    request: Django Request object
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   113
    entities: list of Organization entities to convert
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   114
    context: the context of this task
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   115
  """
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   116
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   117
  from soc.modules.gsoc.logic.models.program import logic as gsoc_program_logic
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   118
  from soc.modules.gsoc.models.organization import GSoCOrganization
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   119
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   120
  # get all the properties that are part of each Organization
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   121
  org_model = org_logic.getModel()
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   122
  org_properties = org_model.properties().keys()
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   123
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   124
  # use this to store all the new GSoCOrganization
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   125
  gsoc_orgs = []
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   126
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   127
  for entity in entities:
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   128
    gsoc_properties = {}
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   129
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   130
    for org_property in org_properties:
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   131
      # copy over all the information from the Organization entity
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   132
      gsoc_properties[org_property] = getattr(entity, org_property)
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   133
3001
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   134
    # get the Program key belonging to the old Organization
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   135
    program_key = entity.scope.key().id_or_name()
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   136
    # get the new GSoCProgram and set it as scope for the GSoCOrganzation
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   137
    gsoc_program = gsoc_program_logic.getFromKeyName(program_key)
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   138
    gsoc_properties['scope'] = gsoc_program
2997
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   139
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   140
    # create the new GSoCOrganization entity and prepare it to be stored
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   141
    gsoc_org_entity = GSoCOrganization(key_name=entity.key().name(),
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   142
                                       **gsoc_properties)
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   143
    gsoc_orgs.append(gsoc_org_entity)
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   144
2999
d933a6da5eef Only store all the entities once in the ModuleConversion, after the for loop.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2998
diff changeset
   145
  # store all the new GSoCOrganizations
d933a6da5eef Only store all the entities once in the ModuleConversion, after the for loop.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2998
diff changeset
   146
  db.put(gsoc_orgs)
2997
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   147
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   148
  # task completed, return
a7cb53d213d7 Added the Organization to GSoCOrganzation update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2996
diff changeset
   149
  return
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   150
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   151
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   152
@decorators.iterative_task(org_admin_logic)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   153
def runOrgAdminConversionUpdate(request, entities, context, *args, **kwargs):
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   154
  """AppEngine Task that converts OrgAdmins into GSoCOrgAdmins.
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   155
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   156
  Args:
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   157
    request: Django Request object
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   158
    entities: list of OrgAdmin entities to convert
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   159
    context: the context of this task
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   160
  """
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   161
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   162
  from soc.modules.gsoc.models.org_admin import GSoCOrgAdmin
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   163
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   164
  return _runOrgRoleConversionUpdate(entities, org_admin_logic, GSoCOrgAdmin)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   165
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   166
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   167
@decorators.iterative_task(mentor_logic)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   168
def runMentorConversionUpdate(request, entities, context, *args, **kwargs):
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   169
  """AppEngine Task that converts Mentors into GSoCMentors.
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   170
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   171
  Args:
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   172
    request: Django Request object
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   173
    entities: list of Mentor entities to convert
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   174
    context: the context of this task
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   175
  """
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   176
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   177
  from soc.modules.gsoc.models.mentor import GSoCMentor
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   178
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   179
  return _runOrgRoleConversionUpdate(entities, mentor_logic, GSoCMentor)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   180
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   181
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   182
def _runOrgRoleConversionUpdate(entities, from_role_logic, to_role_model):
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   183
  """AppEngine Task that converts a normal Organization Role into a
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   184
  GSoCOrganization Role.
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   185
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   186
  Args:
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   187
    entities: Role entities to convert
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   188
    from_role_logic: the Role Logic instance where to convert from
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   189
    to_role_model: the role Model class where to convert to
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   190
  """
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   191
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   192
  from soc.modules.gsoc.logic.models.organization import logic as \
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   193
      gsoc_org_logic
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   194
  from soc.modules.gsoc.logic.models.program import logic as gsoc_program_logic
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   195
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   196
  # get all the properties that are part of each Organization's Role
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   197
  role_model = from_role_logic.getModel()
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   198
  role_properties = role_model.properties().keys()
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   199
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   200
  # use this to store all the new Roles
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   201
  gsoc_roles = []
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   202
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   203
  for entity in entities:
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   204
    gsoc_properties = {}
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   205
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   206
    for role_property in role_properties:
3000
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   207
      # copy over all the information from the Role entity
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   208
      gsoc_properties[role_property] = getattr(entity, role_property)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   209
3001
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   210
    # get the Program key belonging to the old Role
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   211
    program_key = entity.program.key().id_or_name()
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   212
    # get the new GSoCProgram and set it for the Role
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   213
    gsoc_program = gsoc_program_logic.getFromKeyName(program_key)
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   214
    gsoc_properties['program'] = gsoc_program
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   215
3001
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   216
    # get the Organization key belonging to the old Role
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   217
    org_key = entity.scope.key().id_or_name()
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   218
    # get the new GSoCOrganization and set it as scope for the Role
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   219
    gsoc_org = gsoc_org_logic.getFromKeyName(org_key)
1698cca3d912 Only set new properties outside the "properties" loop for the ModuleConversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3000
diff changeset
   220
    gsoc_properties['scope'] = gsoc_org
2998
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   221
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   222
    # create the new GSoC Role entity and prepare it to be stored
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   223
    gsoc_role_entity = to_role_model(key_name=entity.key().name(),
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   224
                                        **gsoc_properties)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   225
    gsoc_roles.append(gsoc_role_entity)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   226
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   227
  # store all the new GSoC Roles
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   228
  db.put(gsoc_roles)
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   229
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   230
  # task completed, return
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   231
  return
9c34768346da Add OrgAdmin and Mentor to GSoCOrgadmin and GSoCMentor updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2997
diff changeset
   232
3000
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   233
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   234
@decorators.iterative_task(student_logic)
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   235
def runStudentConversionUpdate(request, entities, context, *args, **kwargs):
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   236
  """AppEngine Task that converts Students into GSoCStudents.
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   237
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   238
  Args:
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   239
    request: Django Request object
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   240
    entities: list of Student entities to convert
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   241
    context: the context of this task
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   242
  """
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   243
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   244
  from soc.modules.gsoc.logic.models.program import logic as gsoc_program_logic
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   245
  from soc.modules.gsoc.models.student import GSoCStudent
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   246
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   247
  # get all the properties that are part of each Student
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   248
  student_model = student_logic.getModel()
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   249
  student_properties = student_model.properties().keys()
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   250
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   251
  # use this to store all the new GSoCStudents
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   252
  gsoc_students = []
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   253
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   254
  for entity in entities:
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   255
    gsoc_properties = {}
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   256
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   257
    for student_property in student_properties:
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   258
      # copy over all the information from the Student entity
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   259
      gsoc_properties[student_property] = getattr(entity, student_property)
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   260
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   261
    # get the Program key belonging to the old Student
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   262
    program_key = entity.scope.key().id_or_name()
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   263
    # get the new GSoCProgram and set it as scope for the GSoCStudent
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   264
    gsoc_program = gsoc_program_logic.getFromKeyName(program_key)
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   265
    gsoc_properties['scope'] = gsoc_program
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   266
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   267
    # create the new GSoCStudent entity and prepare it to be stored
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   268
    gsoc_student_entity = GSoCStudent(key_name=entity.key().name(),
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   269
                                      **gsoc_properties)
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   270
    gsoc_students.append(gsoc_student_entity)
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   271
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   272
  # store all the new GSoCStudents
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   273
  db.put(gsoc_students)
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   274
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   275
  # task completed, return
733d07eac729 Add the Student to GSoCStudent conversion,
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2999
diff changeset
   276
  return
3006
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   277
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   278
3014
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   279
@decorators.iterative_task(student_proposal_logic)
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   280
def runStudentProposalUpdate(request, entities, context, *args, **kwargs):
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   281
  """AppEngine Task that updates StudentProposal entities.
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   282
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   283
  Args:
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   284
    request: Django Request object
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   285
    entities: list of StudentProposal entities to update
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   286
    context: the context of this task
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   287
  """
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   288
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   289
  from soc.modules.gsoc.logic.models.mentor import logic as mentor_logic
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   290
  from soc.modules.gsoc.logic.models.organization import logic as org_logic
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   291
  from soc.modules.gsoc.logic.models.program import logic as program_logic
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   292
  from soc.modules.gsoc.logic.models.student import logic as student_logic
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   293
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   294
  for entity in entities:
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   295
    entity.scope = student_logic.getFromKeyName(
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   296
        entity.scope.key().id_or_name())
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   297
    entity.org = org_logic.getFromKeyName(entity.org.key().id_or_name())
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   298
    entity.program = program_logic.getFromKeyName(
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   299
        entity.program.key().id_or_name())
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   300
3020
b2c97cbba7df Fixed bug in StudentProposal update when a StudentProposal had no Mentor.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3019
diff changeset
   301
    if entity.mentor:
b2c97cbba7df Fixed bug in StudentProposal update when a StudentProposal had no Mentor.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3019
diff changeset
   302
      entity.mentor = mentor_logic.getFromKeyName(
b2c97cbba7df Fixed bug in StudentProposal update when a StudentProposal had no Mentor.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3019
diff changeset
   303
          entity.mentor.key().id_or_name())
b2c97cbba7df Fixed bug in StudentProposal update when a StudentProposal had no Mentor.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3019
diff changeset
   304
3014
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   305
    old_mentors = entity.possible_mentors
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   306
    new_mentors = []
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   307
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   308
    for old_mentor in old_mentors:
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   309
      new_mentors.append(
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   310
        mentor_logic.getFromKeyName(old_mentor.id_or_name()))
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   311
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   312
    entity.possible_mentors = new_mentors
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   313
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   314
  # store all StudentProposal
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   315
  db.put(entities)
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   316
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   317
  # task completed, return
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   318
  return
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   319
75c2410d3f85 Add StudentProposal conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3011
diff changeset
   320
3006
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   321
@decorators.iterative_task(review_logic)
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   322
def runReviewUpdate(request, entities, context, *args, **kwargs):
3007
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   323
  """AppEngine Task that updates Review entities.
3006
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   324
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   325
  Args:
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   326
    request: Django Request object
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   327
    entities: list of Review entities to update
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   328
    context: the context of this task
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   329
  """
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   330
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   331
  for entity in entities:
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   332
    entity.reviewer = None
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   333
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   334
  # store all Reviews
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   335
  db.put(entities)
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   336
e74c4d37a61a Added Review module conversion update.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3001
diff changeset
   337
  # task completed, return
3007
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   338
  return
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   339
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   340
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   341
@decorators.iterative_task(student_project_logic)
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   342
def runStudentProjectUpdate(request, entities, context, *args, **kwargs):
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   343
  """AppEngine Task that updates StudentProject entities.
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   344
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   345
  Args:
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   346
    request: Django Request object
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   347
    entities: list of StudentProject entities to update
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   348
    context: the context of this task
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   349
  """
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   350
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   351
  from soc.modules.gsoc.logic.models.mentor import logic as mentor_logic
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   352
  from soc.modules.gsoc.logic.models.organization import logic as org_logic
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   353
  from soc.modules.gsoc.logic.models.program import logic as program_logic
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   354
  from soc.modules.gsoc.logic.models.student import logic as student_logic
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   355
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   356
  for entity in entities:
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   357
    entity.scope = org_logic.getFromKeyName(entity.scope.key().id_or_name())
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   358
    entity.mentor = mentor_logic.getFromKeyName(
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   359
        entity.mentor.key().id_or_name())
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   360
    entity.student = student_logic.getFromKeyName(
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   361
        entity.student.key().id_or_name())
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   362
    entity.program = program_logic.getFromKeyName(
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   363
        entity.program.key().id_or_name())
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   364
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   365
    old_mentors = entity.additional_mentors
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   366
    new_mentors = []
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   367
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   368
    for old_mentor in old_mentors:
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   369
      new_mentors.append(
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   370
        mentor_logic.getFromKeyName(old_mentor.id_or_name()))
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   371
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   372
    entity.additional_mentors = new_mentors
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   373
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   374
  # store all StudentProjects
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   375
  db.put(entities)
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   376
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   377
  # task completed, return
d23d1dee5261 Added StudentProject update to the Module Conversion updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3006
diff changeset
   378
  return
3008
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   379
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   380
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   381
@decorators.iterative_task(survey_logic.logic)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   382
def runSurveyUpdate(request, entities, context, *args, **kwargs):
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   383
  """AppEngine Task that updates Survey entities.
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   384
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   385
  Args:
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   386
    request: Django Request object
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   387
    entities: list of Survey entities to update
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   388
    context: the context of this task
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   389
  """
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   390
  return _runSurveyUpdate(entities)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   391
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   392
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   393
@decorators.iterative_task(survey_logic.project_logic)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   394
def runProjectSurveyUpdate(request, entities, context, *args, **kwargs):
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   395
  """AppEngine Task that updates ProjectSurvey entities.
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   396
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   397
  Args:
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   398
    request: Django Request object
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   399
    entities: list of ProjectSurvey entities to update
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   400
    context: the context of this task
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   401
  """
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   402
  return _runSurveyUpdate(entities)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   403
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   404
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   405
@decorators.iterative_task(survey_logic.grading_logic)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   406
def runGradingProjectSurveyUpdate(request, entities, context, *args, **kwargs):
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   407
  """AppEngine Task that updates GradingProjectSurvey entities.
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   408
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   409
  Args:
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   410
    request: Django Request object
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   411
    entities: list of GradingProjectSurvey entities to update
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   412
    context: the context of this task
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   413
  """
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   414
  return _runSurveyUpdate(entities)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   415
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   416
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   417
def _runSurveyUpdate(entities):
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   418
  """AppEngine Task that updates Survey entities.
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   419
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   420
  Args:
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   421
    entities: list of Survey entities to update
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   422
  """
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   423
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   424
  from soc.modules.gsoc.logic.models.program import logic as program_logic
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   425
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   426
  for entity in entities:
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   427
    entity.scope = program_logic.getFromKeyName(
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   428
        entity.scope.key().id_or_name())
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   429
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   430
  # store all Surveys
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   431
  db.put(entities)
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   432
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   433
  # task completed, return
525c65b0a320 Added update for Surveys, ProjectSurveys and ProjectGradingSurveys.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3007
diff changeset
   434
  return
3009
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   435
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   436
3019
f106f825c4c9 Fixed module conversion imports.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3014
diff changeset
   437
@decorators.iterative_task(survey_record_logic.project_logic)
3009
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   438
def runProjectSurveyRecordUpdate(request, entities, context, *args, **kwargs):
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   439
  """AppEngine Task that updates ProjectSurveyRecord entities.
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   440
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   441
  Args:
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   442
    request: Django Request object
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   443
    entities: list of ProjectSurveyRecord entities to update
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   444
    context: the context of this task
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   445
  """
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   446
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   447
  return _runSurveyRecordUpdate(entities)
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   448
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   449
3019
f106f825c4c9 Fixed module conversion imports.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3014
diff changeset
   450
@decorators.iterative_task(survey_record_logic.grading_logic)
3009
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   451
def runGradingProjectSurveyRecordsUpdate(request, entities, context, *args, **kwargs):
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   452
  """AppEngine Task that updates GradingProjectSurveyRecord entities.
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   453
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   454
  Args:
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   455
    request: Django Request object
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   456
    entities: list of GradingProjectSurveyRecord entities to update
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   457
    context: the context of this task
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   458
  """
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   459
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   460
  return _runSurveyRecordUpdate(entities)
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   461
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   462
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   463
def _runSurveyRecordUpdate(entities):
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   464
  """AppEngine Task taht updates SurveyRecord entities.
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   465
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   466
  Args:
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   467
    entities: list of SurveyRecord entities to update 
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   468
  """
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   469
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   470
  from soc.modules.gsoc.logic.models.organization import logic as org_logic
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   471
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   472
  for entity in entities:
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   473
    entity.org = org_logic.getFromKeyName(entity.org.key().id_or_name())
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   474
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   475
  db.put(entities)
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   476
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   477
  # task completed, return
99f2d9b1ff7d Added update for SurveyRecords
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3008
diff changeset
   478
  return
3010
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   479
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   480
3021
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   481
@decorators.iterative_task(grading_survey_group_logic)
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   482
def runGradingSurveyGroupUpdate(request, entities, context, *args, **kwargs):
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   483
  """AppEngine Task that updates GradingSurveyGroup entities.
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   484
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   485
  Args:
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   486
    request: Django Request object
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   487
    entities: list of Document entities to update
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   488
    context: the context of this task
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   489
  """
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   490
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   491
  from soc.modules.gsoc.logic.models.program import logic as program_logic
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   492
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   493
  for entity in entities:
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   494
    entity.scope = program_logic.getFromKeyName(
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   495
        entity.scope.key().id_or_name())
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   496
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   497
  db.put(entities)
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   498
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   499
  # task completed, return
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   500
  return
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   501
baeb847b88e6 Added GradingSurveyGroup update to the Module Conversion.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 3020
diff changeset
   502
3010
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   503
@decorators.iterative_task(document_logic)
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   504
def runDocumentUpdate(request, entities, context, *args, **kwargs):
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   505
  """AppEngine Task that updates Document entities.
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   506
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   507
  Args:
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   508
    request: Django Request object
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   509
    entities: list of Document entities to update
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   510
    context: the context of this task
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   511
  """
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   512
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   513
  from soc.modules.gsoc.logic.models.organization import logic as org_logic
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   514
  from soc.modules.gsoc.logic.models.program import logic as program_logic
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   515
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   516
  for entity in entities:
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   517
    if entity.prefix == 'org':
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   518
      org_entity = org_logic.getFromKeyName(entity.key().id_or_name())
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   519
      entity.scope = org_entity
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   520
      entity.home_for = org_entity if entity.home_for else None
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   521
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   522
    if entity.prefix == 'program':
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   523
      program_entity = program_logic.getFromKeyName(entity.key().id_or_name())
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   524
      entity.scope = program_entity
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   525
      entity.home_for = program_entity if entity.home_for else None
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   526
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   527
  # store all Documents
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   528
  db.put(entities)
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   529
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   530
  # task completed, return
a0dd39fa090b Add update for Documents
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3009
diff changeset
   531
  return
3011
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   532
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   533
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   534
@decorators.iterative_task(timeline_logic)
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   535
def runTimelineConversionUpdate(request, entities, context, *args, **kwargs):
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   536
  """AppEngine Task that converts Timelines into GSoCTimelines.
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   537
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   538
  Args:
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   539
    request: Django Request object
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   540
    entities: list of Timeline entities to convert
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   541
    context: the context of this task
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   542
  """
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   543
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   544
  from soc.modules.gsoc.models.timeline import GSoCTimeline
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   545
  from soc.modules.gsoc.logic.models.program import logic as program_logic
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   546
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   547
  # get all the properties that are part of each Timeline
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   548
  timeline_model = timeline_logic.getModel()
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   549
  timeline_properties = timeline_model.properties().keys()
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   550
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   551
  # use this to store all the new GSoCTimelines
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   552
  gsoc_timeline = []
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   553
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   554
  for entity in entities:
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   555
    gsoc_properties = {}
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   556
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   557
    for timeline_property in timeline_properties:
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   558
      # copy over all the information from the timeline entity
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   559
      gsoc_properties[timeline_property] = getattr(entity, timeline_property)
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   560
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   561
    gsoc_program = program_logic.getFromKeyName(entity.scope.key().id_or_name())
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   562
    gsoc_properties['scope'] = gsoc_program
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   563
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   564
    # create the new GSoCTimeline entity and prepare it to be stored
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   565
    gsoc_timeline_entity = GSoCTimeline(key_name=entity.key().name(),
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   566
                                        **gsoc_properties)
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   567
    gsoc_timelines.append(gsoc_timeline_entity)
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   568
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   569
  # store all the new GSoCPrograms
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   570
  db.put(gsoc_timelines)
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   571
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   572
  # task completed, return
1834d422d1dc Add Timeline conversion update
Sverre Rabbelier <srabbelier@gmail.com>
parents: 3010
diff changeset
   573
  return