app/soc/models/seed_db.py
author Lennard de Rijk <ljvderijk@gmail.com>
Mon, 24 Aug 2009 18:44:41 +0200
changeset 2793 8c88226b27e7
parent 2669 c28e2dc4cd51
child 2813 6f7af233b5b0
permissions -rw-r--r--
Set default taking access for GradingProjectSurvey to org. This will allow Mentors and Org Admins to take GradingProjectSurveys in case that an Org Admin has no Mentor roles.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     1
#!/usr/bin/python2.5
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     2
#
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     3
# Copyright 2008 the Melange authors.
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     4
#
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     6
# you may not use this file except in compliance with the License.
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     7
# You may obtain a copy of the License at
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     8
#
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    10
#
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    14
# See the License for the specific language governing permissions and
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    15
# limitations under the License.
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    16
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    17
"""Seeds or clears the datastore.
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    18
"""
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    19
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    20
__authors__ = [
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    21
    '"Sverre Rabbelier" <sverre@rabbelier.nl>',
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    22
    'JamesLevy" <jamesalexanderlevy@gmail.com>',
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    23
  ]
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    24
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    25
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    26
import itertools
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
    27
import logging
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
    28
import random
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    29
import datetime
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    30
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    31
from google.appengine.api import users
1453
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
    32
from google.appengine.api import memcache
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    33
from google.appengine.ext import db
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    34
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
    35
from django import http
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
    36
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    37
from soc.logic.models.document import logic as document_logic
1623
8b70d6bb3f8f Renamed rankerroot to ranker_root and made some changes due to comments.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1609
diff changeset
    38
from soc.logic.models.ranker_root import logic as ranker_root_logic
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    39
from soc.logic.models.survey import logic as survey_logic
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    40
from soc.logic.models.user import logic as user_logic
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    41
1798
ba4c00bc0c39 Use accounts.getCurrentAccount instead of users.get_current_user
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1794
diff changeset
    42
from soc.logic import accounts
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    43
from soc.logic import dicts
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
    44
from soc.models import student_proposal
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    45
from soc.models.document import Document
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    46
from soc.models.host import Host
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    47
from soc.models.mentor import Mentor
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
from soc.models.notification import Notification
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    49
from soc.models.org_admin import OrgAdmin
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    50
from soc.models.organization import Organization
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    51
from soc.models.org_app import OrgApplication
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    52
from soc.models.program import Program
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
    53
from soc.models.ranker_root import RankerRoot
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    54
from soc.models.site import Site
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
    55
from soc.models.student import Student
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    56
from soc.models.student_project import StudentProject
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
    57
from soc.models.student_proposal import StudentProposal
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    58
from soc.models.survey import Survey, SurveyContent
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
    59
from soc.models.survey_record import SurveyRecord
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    60
from soc.models.sponsor import Sponsor
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    61
from soc.models.timeline import Timeline
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    62
from soc.models.user import User
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    63
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    64
class Error(Exception):
2074
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
    65
  """Base class for all exceptions raised by this module.
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
    66
  """
2167
91e622242f2d Respond to comments on r2769.
Daniel Bentley <dbentley@google.com>
parents: 2160
diff changeset
    67
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    68
  pass
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    69
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    70
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    71
def ensureUser():
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    72
  """Returns the current user account and associated user object.
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    73
  """
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    74
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    75
  account = accounts.getCurrentAccount()
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    76
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    77
  if not account:
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    78
    account = users.User(email='test@example.com')
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    79
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    80
  user_properties = {
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    81
      'key_name': 'test',
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    82
      'link_id': 'test',
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    83
      'account': account,
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    84
      'name': 'Test',
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    85
      }
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    86
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    87
  current_user = User(**user_properties)
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    88
  current_user.put()
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    89
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    90
  return account, current_user
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    91
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    92
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    93
class Seeder(object):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    94
  """A Seeder can seed Melange types.
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    95
  """
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    96
  def type(self):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    97
    """Returns the type to be seeded."""
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    98
    raise NotImplementedError
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
    99
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   100
  def seed(self, i, entities=None, **kwargs):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   101
    """Seed the ith instance of this type.
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   102
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   103
    Args:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   104
      i, int: which to seed
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   105
      entities, list of type()'s: if None, persist at the end of this call.
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   106
        if non-None, append the created entity to entities instead of
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   107
        persisting.
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   108
      kwargs: the dictionary returned by commonSeedArgs
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   109
    """
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   110
    raise NotImplementedError
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   111
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   112
  def commonSeedArgs(self, request):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   113
    """Find common information for seeding that's common across entities
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   114
    seeded in one request.
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   115
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   116
    Returns:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   117
      dictionary of str->value; passed to each call of seed() for this
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   118
      request
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   119
    """
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   120
    raise NotImplementedError
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   121
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   122
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   123
class UserSeeder(Seeder):
2367
19ca23d78701 Add some missing docstrings to Seeder classes in seed_db.py
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2366
diff changeset
   124
  """A Seeder for Melange User model.
19ca23d78701 Add some missing docstrings to Seeder classes in seed_db.py
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2366
diff changeset
   125
  """
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   126
  def type(self):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   127
    return User
2366
1a954e80d444 Style fixes and pylint: disable-msg comments in different modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2361
diff changeset
   128
  
1a954e80d444 Style fixes and pylint: disable-msg comments in different modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2361
diff changeset
   129
  # pylint: disable-msg=W0221
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   130
  def seed(self, i, entities=None):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   131
    user_properties = {
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   132
        'key_name': 'user_%04d' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   133
        'link_id': 'user_%04d' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   134
        'account': users.User(email='user_%04d@example.com' % i),
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   135
        'name': 'User %04d' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   136
        }
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   137
    entity = User(**user_properties)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   138
    if entities is None:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   139
      entity.put()
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   140
      user_logic._onCreate(entity)
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   141
    else:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   142
      entities.append(entity)
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   143
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   144
  def commonSeedArgs(self, request):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   145
    return {}
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   146
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   147
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   148
class OrganizationSeeder(Seeder):
2367
19ca23d78701 Add some missing docstrings to Seeder classes in seed_db.py
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2366
diff changeset
   149
  """A Seeder for Melange Organization model.
19ca23d78701 Add some missing docstrings to Seeder classes in seed_db.py
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2366
diff changeset
   150
  """
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   151
  def type(self):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   152
    return Organization
2366
1a954e80d444 Style fixes and pylint: disable-msg comments in different modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2361
diff changeset
   153
  
1a954e80d444 Style fixes and pylint: disable-msg comments in different modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2361
diff changeset
   154
  # pylint: disable-msg=W0221
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   155
  def seed(self, i, entities=None, current_user=None, gsoc2009=None):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   156
    properties = {
2352
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   157
        'key_name': 'google/gsoc2009/org_%04d' % i,
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   158
        'link_id': 'org_%04d' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   159
        'name': 'Organization %04d' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   160
        'short_name': 'Org %04d' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   161
        'founder': current_user,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   162
        'scope_path': 'google/gsoc2009',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   163
        'scope': gsoc2009,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   164
        'status': 'active',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   165
        'email': 'org_%04d@example.com' % i,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   166
        'home_page': 'http://code.google.com/p/soc',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   167
        'description': 'Melange, share the love!',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   168
        'license_name': 'Apache License',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   169
        'contact_street': 'Some Street',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   170
        'contact_city': 'Some City',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   171
        'contact_country': 'United States',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   172
        'contact_postalcode': '12345',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   173
        'phone': '1-555-BANANA',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   174
        'ideas': 'http://code.google.com/p/soc/issues',
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   175
        }
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   176
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   177
    org = Organization(**properties)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   178
    if entities is None:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   179
      org.put()
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   180
    else:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   181
      entities.append(org)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   182
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   183
  def commonSeedArgs(self, request):
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   184
    _, current_user = ensureUser()
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   185
    gsoc2009 = Program.get_by_key_name('google/gsoc2009')
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   186
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   187
    if not gsoc2009:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   188
      raise Error('Run seed_db first')
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   189
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   190
    return dict(current_user=current_user,
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   191
                gsoc2009=gsoc2009)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   192
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   193
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   194
class OrgApplicationSeeder(Seeder):
2367
19ca23d78701 Add some missing docstrings to Seeder classes in seed_db.py
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2366
diff changeset
   195
  """A Seeder for Melange OrgApplication model.
19ca23d78701 Add some missing docstrings to Seeder classes in seed_db.py
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2366
diff changeset
   196
  """
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   197
  def type(self):
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   198
    return OrgApplication
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   199
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   200
  def commonSeedArgs(self, request):
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   201
    _, current_user = ensureUser()
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   202
    gsoc2009 = Program.get_by_key_name('google/gsoc2009')
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   203
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   204
    if not gsoc2009:
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   205
      raise Error('Run seed_db first')
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   206
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   207
    status = request.GET.get('status', 'pre-accepted')
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   208
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   209
    return dict(current_user=current_user,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   210
                gsoc2009=gsoc2009,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   211
                status=status)
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   212
2366
1a954e80d444 Style fixes and pylint: disable-msg comments in different modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2361
diff changeset
   213
  # pylint: disable-msg=W0221
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   214
  def seed(self, i, entities=None, current_user=None, gsoc2009=None,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   215
           status=None):
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   216
    properties = {
2352
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   217
        'key_name': 'google/gsoc2009/org_%04d' % i,
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   218
        'link_id': 'org_%04d' % i,
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   219
        'name': 'Org App %04d' % i,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   220
        'scope_path': 'google/gsoc2009',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   221
        'scope': gsoc2009,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   222
        'status': status,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   223
        'applicant': current_user,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   224
        'home_page': 'http://www.google.com',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   225
        'email': 'org@example.com',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   226
        'irc_channel': '#care',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   227
        'pub_mailing_list': 'http://groups.google.com',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   228
        'dev_mailing_list': 'http://groups.google.com',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   229
        'description': 'This is an awesome org!',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   230
        'why_applying': 'Because we can',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   231
        'member_criteria': 'They need to be awesome',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   232
        'license_name': 'Apache License, 2.0',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   233
        'ideas': 'http://code.google.com/p/soc/issues',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   234
        'contrib_disappears': 'We use google to find them',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   235
        'member_disappears': 'See above',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   236
        'encourage_contribs': 'We offer them cookies.',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   237
        'continued_contribs': 'We promise them a cake.',
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   238
        'agreed_to_admin_agreement': True,
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   239
        }
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   240
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   241
    org_application = OrgApplication(**properties)
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   242
    if entities is None:
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   243
      org_application.put()
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   244
    else:
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   245
      entities.append(org_application)
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   246
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   247
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   248
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   249
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   250
def seed(request, *args, **kwargs):
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   251
  """Seeds the datastore with some default values.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   252
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   253
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   254
  site_properties = {
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   255
      'key_name': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   256
      'link_id': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   257
      }
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   258
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   259
  site = Site(**site_properties)
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   260
  site.put()
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   261
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   262
2074
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
   263
  _, current_user = ensureUser()
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   264
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   265
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   266
  seeder = UserSeeder()
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   267
  for i in range(15):
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   268
    seeder.seed(i)
1602
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   269
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   270
  group_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   271
       'key_name': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   272
       'link_id': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   273
       'name': 'Google Inc.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   274
       'short_name': 'Google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   275
       'founder': current_user,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   276
       'home_page': 'http://www.google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   277
       'email': 'ospo@google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   278
       'description': 'This is the profile for Google.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   279
       'contact_street': 'Some Street',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   280
       'contact_city': 'Some City',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   281
       'contact_country': 'United States',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   282
       'contact_postalcode': '12345',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   283
       'phone': '1-555-BANANA',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   284
       'status': 'active',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   285
       }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   286
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   287
  google = Sponsor(**group_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   288
  google.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   289
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   290
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   291
  role_properties = {
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   292
      'key_name': 'google/test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   293
      'link_id': 'test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   294
      'scope': google,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   295
      'scope_path': 'google',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   296
      'user': current_user,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   297
      'given_name': 'Test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   298
      'surname': 'Example',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   299
      'name_on_documents': 'Test Example',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   300
      'email': 'test@example.com',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   301
      'res_street': 'Some Street',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   302
      'res_city': 'Some City',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   303
      'res_state': 'Some State',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   304
      'res_country': 'United States',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   305
      'res_postalcode': '12345',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   306
      'phone': '1-555-BANANA',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   307
      'birth_date': db.DateProperty.now(),
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   308
      'agreed_to_tos': True,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   309
      }
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   310
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   311
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   312
  google_host = Host(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   313
  google_host.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   314
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   315
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   316
  timeline_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   317
        'key_name': 'google/gsoc2009',
1475
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   318
        'link_id': 'gsoc2009',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   319
        'scope_path': 'google',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   320
        'scope': google,
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   321
        }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   322
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   323
  gsoc2009_timeline = Timeline(**timeline_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   324
  gsoc2009_timeline.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   325
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   326
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   327
  program_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   328
      'key_name': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   329
      'link_id': 'gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   330
      'scope_path': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   331
      'scope': google,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   332
      'name': 'Google Summer of Code 2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   333
      'short_name': 'GSoC 2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   334
      'group_label': 'GSOC',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   335
      'description': 'This is the program for GSoC 2009.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   336
      'apps_tasks_limit': 42,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   337
      'slots': 42,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   338
      'workflow': 'gsoc',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   339
      'timeline': gsoc2009_timeline,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   340
      'status': 'visible',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   341
      }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   342
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   343
  gsoc2009 = Program(**program_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   344
  gsoc2009.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   345
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   346
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   347
  timeline_properties = {
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   348
        'key_name': 'google/ghop2009',
1475
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   349
        'link_id': 'ghop2009',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   350
        'scope_path': 'google',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   351
        'scope': google,
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   352
        }
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   353
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   354
  ghop2009_timeline = Timeline(**timeline_properties)
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   355
  ghop2009_timeline.put()
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   356
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   357
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   358
  program_properties.update({
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   359
      'key_name': 'google/ghop2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   360
      'link_id': 'ghop2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   361
      'name': 'Google Highly Open Participation Contest 2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   362
      'short_name': 'GHOP 2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   363
      'group_label': 'GHOP',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   364
      'description': 'This is the program for GHOP 2009.',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   365
      'workflow': 'ghop',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   366
      'timeline': ghop2009_timeline,
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   367
      })
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   368
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   369
  ghop2009 = Program(**program_properties)
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   370
  ghop2009.put()
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   371
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   372
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   373
  org_app_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   374
    'scope_path': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   375
    'scope': gsoc2009,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   376
    'applicant': current_user,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   377
    'home_page': 'http://www.google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   378
    'email': 'org@example.com',
1562
0e1a93e0c54d Made mailing lists and IRC channel required for group/org applications.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1475
diff changeset
   379
    'irc_channel': '#care',
0e1a93e0c54d Made mailing lists and IRC channel required for group/org applications.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1475
diff changeset
   380
    'pub_mailing_list': 'http://groups.google.com',
0e1a93e0c54d Made mailing lists and IRC channel required for group/org applications.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1475
diff changeset
   381
    'dev_mailing_list': 'http://groups.google.com',
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   382
    'description': 'This is an awesome org!',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   383
    'why_applying': 'Because we can',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   384
    'member_criteria': 'They need to be awesome',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   385
    'status': 'pre-accepted',
1429
cfa0c3f2dc19 Update seed_db as WTFPL is no longer an allowed license
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1415
diff changeset
   386
    'license_name': 'Apache License, 2.0',
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   387
    'ideas': 'http://code.google.com/p/soc/issues',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   388
    'contrib_disappears': 'We use google to find them',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   389
    'member_disappears': 'See above',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   390
    'encourage_contribs': 'We offer them cookies.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   391
    'continued_contribs': 'We promise them a cake.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   392
    'agreed_to_admin_agreement': True,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   393
    }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   394
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   395
  for i in range(10):
2352
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   396
    org_app_properties['key_name'] = 'google/gsoc2009/org_%04d' % i
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   397
    org_app_properties['link_id'] = 'org_%04d' % i
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   398
    org_app_properties['name'] = 'Org App %04d' % i
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   399
    entity = OrgApplication(**org_app_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   400
    entity.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   401
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   402
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   403
  org_app_properties['status'] = 'pre-rejected'
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   404
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   405
  for i in range(10, 20):
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   406
    org_app_properties['key_name'] = 'google/gsoc2009/loser_%d' % i
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   407
    org_app_properties['link_id'] = 'loser_%d' % i
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   408
    org_app_properties['name'] = 'Loser %d' % i
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   409
    entity = OrgApplication(**org_app_properties)
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   410
    entity.put()
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   411
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   412
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   413
  group_properties.update({
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   414
    'key_name': 'google/ghop2009/melange',
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   415
    'link_id': 'melange',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   416
    'name': 'Melange Development Team',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   417
    'short_name': 'Melange',
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   418
    'scope_path': 'google/ghop2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   419
    'scope': ghop2009,
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   420
    'home_page': 'http://code.google.com/p/soc',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   421
    'description': 'Melange, share the love!',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   422
    'license_name': 'Apache License',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   423
    'ideas': 'http://code.google.com/p/soc/issues',
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   424
    })
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   425
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   426
  melange = Organization(**group_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   427
  melange.put()
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
   428
  # create a new ranker
1623
8b70d6bb3f8f Renamed rankerroot to ranker_root and made some changes due to comments.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1609
diff changeset
   429
  ranker_root_logic.create(student_proposal.DEF_RANKER_NAME, melange,
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
   430
      student_proposal.DEF_SCORE, 100)
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   431
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   432
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   433
  group_properties.update({
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   434
    'scope_path': 'google/gsoc2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   435
    'scope': gsoc2009,
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   436
    })
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   437
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   438
  orgs = []
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   439
  for i in range(15):
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   440
    group_properties.update({
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   441
        'key_name': 'google/gsoc2009/org_%d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   442
        'link_id': 'org_%d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   443
        'name': 'Organization %d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   444
        'short_name': 'Org %d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   445
        'description': 'Organization %d!' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   446
        })
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   447
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   448
    entity = Organization(**group_properties)
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   449
    orgs.append(entity)
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   450
    entity.put()
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
   451
    # create a new ranker
1623
8b70d6bb3f8f Renamed rankerroot to ranker_root and made some changes due to comments.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1609
diff changeset
   452
    ranker_root_logic.create(student_proposal.DEF_RANKER_NAME, entity,
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
   453
        student_proposal.DEF_SCORE, 100)
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   454
2027
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   455
    if i < 2:
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   456
      role_properties.update({
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   457
          'key_name': 'google/gsoc2009/org_%d/test' % i,
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   458
          'link_id': 'test',
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   459
          'scope_path': 'google/gsoc2009/org_%d' % i,
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   460
          'scope': entity,
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   461
          'program': gsoc2009,
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   462
          })
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   463
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   464
      # Admin for the first org
2027
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   465
      if i == 0:
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   466
        org_1_admin = OrgAdmin(**role_properties)
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   467
        org_1_admin.put()
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   468
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   469
      # Only a mentor for the second org
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   470
      if i == 1:
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   471
        org_1_admin = OrgAdmin(**role_properties)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   472
        org_1_admin.put()
2027
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   473
        org_1_mentor = Mentor(**role_properties)
199bcab679df Make test@example.com a mentor for one gsoc org and an admin (for a different) gsoc org.
Tim Ansell <mithro@gmail.com>
parents: 1945
diff changeset
   474
        org_1_mentor.put()
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   475
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   476
  role_properties.update({
1434
441a2b39f88b Fixed a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1429
diff changeset
   477
      'key_name': 'google/ghop2009/melange/test',
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   478
      'link_id': 'test',
1434
441a2b39f88b Fixed a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1429
diff changeset
   479
      'scope_path': 'google/ghop2009/melange',
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   480
      'scope': melange,
1434
441a2b39f88b Fixed a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1429
diff changeset
   481
      'program': ghop2009,
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   482
      })
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   483
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   484
  melange_admin = OrgAdmin(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   485
  melange_admin.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   486
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   487
  melange_mentor = Mentor(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   488
  melange_mentor.put()
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   489
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   490
  student_id = 'test'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   491
  student_properties = {
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   492
      'key_name': gsoc2009.key().name() + "/" + student_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   493
      'link_id': student_id, 
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   494
      'scope_path': gsoc2009.key().name(),
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   495
      'scope': gsoc2009,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   496
      'program': gsoc2009,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   497
      'user': current_user,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   498
      'given_name': 'test',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   499
      'surname': 'test',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   500
      'birth_date': db.DateProperty.now(),
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   501
      'email': 'test@email.com',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   502
      'im_handle': 'test_im_handle',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   503
      'major': 'test major',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   504
      'name_on_documents': 'test',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   505
      'res_country': 'United States',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   506
      'res_city': 'city',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   507
      'res_street': 'test street',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   508
      'res_postalcode': '12345',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   509
      'publish_location': True,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   510
      'blog': 'http://www.blog.com/',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   511
      'home_page': 'http://www.homepage.com/',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   512
      'photo_url': 'http://www.photosite.com/thumbnail.png',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   513
      'ship_state': None,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   514
      'expected_graduation': 2009,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   515
      'school_country': 'United States',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   516
      'school_name': 'Test School', 
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   517
      'tshirt_size': 'XS',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   518
      'tshirt_style': 'male',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   519
      'degree': 'Undergraduate',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   520
      'phone': '1650253000',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   521
      'can_we_contact_you': True, 
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   522
      'program_knowledge': 'I heard about this program through a friend.'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   523
      }
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   524
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   525
  melange_student = Student(**student_properties)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   526
  melange_student.put()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   527
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   528
  student_id = 'test2'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   529
  student_properties.update({
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   530
      'key_name': gsoc2009.key().name() + "/" + student_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   531
      'link_id': student_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   532
      'user': current_user 
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   533
      })
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   534
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   535
  melange_student2 = Student(**student_properties)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   536
  melange_student2.put()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   537
                                       
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   538
  project_id = 'test_project'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   539
  project_properties = {
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   540
      'key_name':  gsoc2009.key().name() + "/org_1/" + project_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   541
      'link_id': project_id, 
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   542
      'scope_path': gsoc2009.key().name() + "/org_1",
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   543
      'scope': orgs[1].key(),
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   544
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   545
      'title': 'test project',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   546
      'abstract': 'test abstract',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   547
      'status': 'accepted',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   548
      'student': melange_student,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   549
      'mentor': org_1_mentor,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   550
      'program':  gsoc2009
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   551
       }
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   552
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   553
  melange_project = StudentProject(**project_properties)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   554
  melange_project.put()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   555
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   556
  project_id = 'test_project2'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   557
  project_properties.update({
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   558
      'key_name':  gsoc2009.key().name() + "/org_1/" + project_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   559
      'link_id': project_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   560
      'student': melange_student2,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   561
      'title': 'test project2'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   562
      })
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   563
      
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   564
  melange_project2 = StudentProject(**project_properties)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   565
  melange_project2.put()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   566
    
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   567
  document_properties = {
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   568
      'key_name': 'site/site/home',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   569
      'link_id': 'home',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   570
      'scope_path': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   571
      'scope': site,
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   572
      'prefix': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   573
      'author': current_user,
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   574
      'title': 'Home Page',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   575
      'short_name': 'Home',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   576
      'content': 'This is the Home Page',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   577
      'modified_by': current_user,
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   578
      }
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   579
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   580
  home_document = Document(**document_properties)
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   581
  home_document.put()
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   582
  document_logic._onCreate(home_document) 
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   583
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   584
1415
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   585
  document_properties = {
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   586
      'key_name': 'user/test/notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   587
      'link_id': 'notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   588
      'scope_path': 'test',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   589
      'scope': current_user,
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   590
      'prefix': 'user',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   591
      'author': current_user,
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   592
      'title': 'My Notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   593
      'short_name': 'Notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   594
      'content': 'These are my notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   595
      'modified_by': current_user,
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   596
      }
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   597
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   598
  notes_document = Document(**document_properties)
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   599
  notes_document.put()
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   600
  document_logic._onCreate(home_document) 
1415
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   601
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   602
  site.home = home_document
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   603
  site.put()
2361
40b0c25a5793 Some more pylint fixes in different Melange modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2352
diff changeset
   604
  # pylint: disable-msg=E1101
1453
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
   605
  memcache.flush_all()
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
   606
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
   607
  return http.HttpResponse('Done')
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   608
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   609
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   610
def seed_user(unused_request, i):
1902
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   611
  """Returns the properties for a new user entity.
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   612
  """
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   613
  properties = {
2175
8dd78e7015f9 Fix a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2167
diff changeset
   614
      'key_name': 'user_%d' % i,
8dd78e7015f9 Fix a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2167
diff changeset
   615
      'link_id': 'user_%d' % i,
8dd78e7015f9 Fix a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2167
diff changeset
   616
      'account': users.User(email='user_%d@example.com' % i),
8dd78e7015f9 Fix a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2167
diff changeset
   617
      'name': 'User %d' % i,
1902
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   618
      }
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   619
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   620
  return properties
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   621
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   622
1907
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   623
def seed_org_app(request, i):
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   624
  """Returns the properties for a new org proposal,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   625
  """
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   626
2074
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
   627
  _, current_user = ensureUser()
1907
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   628
  status = request.GET.get('status', 'pre-accepted')
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   629
  gsoc2009 = Program.get_by_key_name('google/gsoc2009')
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   630
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   631
  if not gsoc2009:
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   632
    raise Error('Run seed_db first')
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   633
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   634
  properties = {
2352
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   635
      'key_name': 'google/gsoc2009/org_%d' % i,
33ff03da52b6 Link id and key name fixes for Organization And OrgApplication in seed_db.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2351
diff changeset
   636
      'link_id': 'org_%d' % i,
1907
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   637
      'name': 'Org App %d' % i,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   638
      'scope_path': 'google/gsoc2009',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   639
      'scope': gsoc2009,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   640
      'status': status,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   641
      'applicant': current_user,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   642
      'home_page': 'http://www.google.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   643
      'email': 'org@example.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   644
      'irc_channel': '#care',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   645
      'pub_mailing_list': 'http://groups.google.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   646
      'dev_mailing_list': 'http://groups.google.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   647
      'description': 'This is an awesome org!',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   648
      'why_applying': 'Because we can',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   649
      'member_criteria': 'They need to be awesome',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   650
      'license_name': 'Apache License, 2.0',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   651
      'ideas': 'http://code.google.com/p/soc/issues',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   652
      'contrib_disappears': 'We use google to find them',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   653
      'member_disappears': 'See above',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   654
      'encourage_contribs': 'We offer them cookies.',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   655
      'continued_contribs': 'We promise them a cake.',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   656
      'agreed_to_admin_agreement': True,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   657
      }
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   658
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   659
  return properties
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   660
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   661
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   662
def seed_org(unused_request, i):
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   663
  """Returns the properties for a new org entity.
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   664
  """
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   665
2074
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
   666
  _, current_user = ensureUser()
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   667
  gsoc2009 = Program.get_by_key_name('google/gsoc2009')
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   668
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   669
  if not gsoc2009:
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   670
    raise Error('Run seed_db first')
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   671
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   672
  properties = {
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   673
      'key_name': 'google/gsoc2009/org_%d' % i,
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   674
      'link_id': 'org_%d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   675
      'name': 'Organization %d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   676
      'short_name': 'Org %d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   677
      'founder': current_user,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   678
      'scope_path': 'google/gsoc2009',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   679
      'scope': gsoc2009,
1929
1ce28a2dd71f Added missing status to seeded orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1907
diff changeset
   680
      'status': 'active',
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   681
      'email': 'org_%i@example.com' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   682
      'home_page': 'http://code.google.com/p/soc',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   683
      'description': 'Melange, share the love!',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   684
      'license_name': 'Apache License',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   685
      'contact_street': 'Some Street',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   686
      'contact_city': 'Some City',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   687
      'contact_country': 'United States',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   688
      'contact_postalcode': '12345',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   689
      'phone': '1-555-BANANA',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   690
      'ideas': 'http://code.google.com/p/soc/issues',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   691
      }
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   692
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   693
  return properties
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   694
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   695
DEADLINE = datetime.datetime.now() + datetime.timedelta(10)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   696
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   697
def seed_survey(request, i):
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   698
  """Returns the properties for a new survey.
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   699
  """
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   700
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   701
  _, current_user = ensureUser()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   702
  gsoc2009 = Program.get_by_key_name('google/gsoc2009')
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   703
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   704
  if not gsoc2009:
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   705
    raise Error('Run seed_db first')
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   706
  link_id = 'survey_%d' % i
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   707
  fields = {'SelectionQ': [u'SelectionQ Option 2 for %s' % link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   708
                           u'SelectionQ Option 1 for %s'  % link_id
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   709
                           ],
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   710
            'PickMultipleQ': ['PickMultipleQ Checkbox 1 for %s' % link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   711
                              'PickMultipleQ Checkbox 2 for %s' % link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   712
                              ],
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   713
            'LongQ': 'LongQ Custom Prompt for %s' % link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   714
            'ShortQ': 'ShortQ Custom Prompt for %s' % link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   715
            }
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   716
  schema = {u'PickMultipleQ': {'index': 5, 'type': 'pick_multi',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   717
                               'render': 'multi_checkbox'},
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   718
            u'LongQ': {'index': 2, 'type': 'long_answer'},
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   719
            u'ShortQ': {'index': 3, 'type': 'short_answer'},
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   720
            u'SelectionQ': {'index': 4, 'type': 'selection',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   721
                            'render': 'single_select'}
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   722
            }
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   723
  properties = {
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   724
      'key_name': 'program/google/gsoc2009/%s' % link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   725
      'link_id': link_id,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   726
      'scope_path': 'google/gsoc2009',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   727
      'scope': None,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   728
      'prefix': 'program',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   729
      'author': current_user,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   730
      'title': 'My Survey %d' % i,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   731
      'short_name': 'Survey %d' % i,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   732
      'modified_by': current_user,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   733
      'is_featured': True,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   734
      'fields': fields,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   735
      'schema': schema,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   736
      'deadline': DEADLINE,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   737
      'taking_access': 'everyone',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   738
      }
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   739
  return properties
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   740
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   741
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   742
def seed_survey_answer(request, i):
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   743
  """Returns the properties of a student's survey answers.
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   744
  """
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   745
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   746
  ensureUser()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   747
  survey = Survey.get_by_key_name('program/google/gsoc2009/survey_%d' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   748
  user = User.get_by_key_name('user_%d' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   749
  #student = Student.get_by_key_name('google/gsoc2009/student_%d' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   750
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   751
  if not user:
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   752
    raise Error('Run seed_many for at least %d users first.' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   753
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   754
  if not survey:
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   755
    raise Error('Run seed_many for at least %d surveys first.' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   756
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   757
  all_properties = []
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   758
  scope_path = 'google/gsoc2009/'
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   759
  checkbox = 'PickMultipleQ Checkbox 2 for survey_%d' % i
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   760
  # pylint: disable-msg=E1103
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   761
  for i in range(5):
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   762
    #student = Student.get_by_key_name('google/gsoc2009/student_%d' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   763
    user = User.get_by_key_name('user_%d' % i)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   764
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   765
    properties = {
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   766
        'scope_path': scope_path,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   767
        'user': user,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   768
        'project': None,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   769
        '_survey': survey,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   770
        '_fields': {'ShortQ':'Test', 'SelectionQ': u'SelectionQ Option 2',
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   771
                   'LongQ': 'Long answer... \n' * 10,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   772
                   'PickMultipleQ': checkbox,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   773
                   }
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   774
        }
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   775
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   776
    all_properties.append(properties)
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   777
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   778
  return all_properties
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
   779
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   780
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   781
def seed_mentor(request, i):
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   782
  """Returns the properties of a new student proposal.
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   783
  """
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   784
2074
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
   785
  _, current_user = ensureUser()
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   786
  org = Organization.get_by_key_name('google/gsoc2009/org_%d' % i)
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   787
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   788
  if not org:
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   789
    raise Error('Run seed_many for at least %d orgs first.' % i)
2361
40b0c25a5793 Some more pylint fixes in different Melange modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2352
diff changeset
   790
  
40b0c25a5793 Some more pylint fixes in different Melange modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2352
diff changeset
   791
  # pylint: disable-msg=E1103
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   792
  properties = {
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   793
      'key_name': 'google/gsoc2009/org_%d/mentor' % i,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   794
      'link_id': 'mentor',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   795
      'scope': org,
2160
3f9dd37d98a8 Use key().id_or_name() instead of key().name()
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2074
diff changeset
   796
      'scope_path': org.key().id_or_name(),
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   797
      'user': current_user,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   798
      'given_name': 'Mentor',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   799
      'surname': 'Man',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   800
      'name_on_documents': 'Mentor Man',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   801
      'email': 'mentor@example.com',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   802
      'res_street': 'Some Street',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   803
      'res_city': 'Some City',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   804
      'res_state': 'Some State',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   805
      'res_country': 'United States',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   806
      'res_postalcode': '12345',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   807
      'phone': '1-555-BANANA',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   808
      'birth_date': db.DateProperty.now(),
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   809
      'agreed_to_tos': True,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   810
      'program': org.scope,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   811
      }
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   812
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   813
  return properties
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   814
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   815
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   816
def seed_student(request, i):
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   817
  """Returns the properties for a new student entity.
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   818
  """
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   819
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   820
  gsoc2009 = Program.get_by_key_name('google/gsoc2009')
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   821
  user = User.get_by_key_name('user_%d' % i)
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   822
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   823
  if not gsoc2009:
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   824
    raise Error('Run seed_db first')
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   825
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   826
  if not user:
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   827
    raise Error('Run seed_many for at least %d users first.' % i)
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   828
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   829
  properties = {
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   830
      'key_name':'google/gsoc2009/student_%d' % i,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   831
      'link_id': 'student_%d' % i,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   832
      'scope_path': 'google/gsoc2009',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   833
      'scope': gsoc2009,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   834
      'user' : user,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   835
      'given_name': 'Student %d' % i,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   836
      'surname': 'Last Name',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   837
      'name_on_documents': 'Test Example',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   838
      'email': 'test@example.com',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   839
      'res_street': 'Some Street',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   840
      'res_city': 'Some City',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   841
      'res_state': 'Some State',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   842
      'res_country': 'United States',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   843
      'res_postalcode': '12345',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   844
      'phone': '1-555-BANANA',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   845
      'birth_date': db.DateProperty.now(),
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   846
      'agreed_to_tos': True,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   847
      'school_name': 'School %d' % i,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   848
      'school_country': 'United States',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   849
      'major': 'Computer Science',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   850
      'degree': 'Undergraduate',
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   851
      'expected_graduation': 2012,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   852
      'program_knowledge': 'Knowledge %d' % i,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   853
      'school': None,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   854
      'can_we_contact_you': True,
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   855
  }
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   856
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   857
  return properties
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   858
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   859
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   860
def seed_student_proposal(request, i):
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   861
  """Returns the properties of a new student proposal.
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   862
  """
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   863
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   864
  ensureUser()
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   865
  org = Organization.get_by_key_name('google/gsoc2009/org_%d' % i)
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   866
  mentor = Mentor.get_by_key_name('google/gsoc2009/org_%d/mentor' % i)
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   867
  user = User.get_by_key_name('user_%d' % i)
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   868
  student = Student.get_by_key_name('google/gsoc2009/student_%d' % i)
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   869
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   870
  if not user:
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   871
    raise Error('Run seed_many for at least %d users first.' % i)
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   872
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   873
  if not student:
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   874
    raise Error('Run seed_many for at least %d students first.' % i)
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   875
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   876
  if not org:
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   877
    raise Error('Run seed_many for at least %d orgs first.' % i)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   878
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   879
  if not mentor:
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   880
    raise Error('Run seed_many for at least %d mentors first.' % i)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   881
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   882
  all_properties = []
2361
40b0c25a5793 Some more pylint fixes in different Melange modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2352
diff changeset
   883
  
40b0c25a5793 Some more pylint fixes in different Melange modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2352
diff changeset
   884
  # pylint: disable-msg=E1103
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   885
  for i in range(random.randint(5, 20)):
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   886
    link_id = 'proposal_%s_%d' % (org.link_id, i)
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   887
    scope_path = 'google/gsoc2009/' + user.link_id
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   888
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   889
    properties = {
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   890
        'link_id': link_id,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   891
        'scope_path': scope_path,
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   892
        'scope': student,
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   893
        'key_name': '%s/%s' % (scope_path, link_id),
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
   894
        'title': 'The Awesome Proposal %s %d' % (user.link_id, i),
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   895
        'abstract': 'This is an Awesome Proposal, look at its awesomeness!',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   896
        'content': 'Sorry, too Awesome for you to read!',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   897
        'additional_info': 'http://www.zipit.com',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   898
        'mentor': mentor,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   899
        'status': 'pending',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   900
        'org': org,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   901
        'program': org.scope,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   902
        }
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   903
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   904
    all_properties.append(properties)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   906
  return all_properties
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   907
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   908
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   909
SEEDABLE_MODEL_TYPES = {
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   910
    'user' : UserSeeder(),
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   911
    'organization' : OrganizationSeeder(),
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   912
    'org_application' : OrgApplicationSeeder(),
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   913
    }
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   914
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   915
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   916
def new_seed_many(request, *args, **kwargs):
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   917
  """Seeds many instances of the specified type.
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   918
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   919
  Takes as URL parameters:
2167
91e622242f2d Respond to comments on r2769.
Daniel Bentley <dbentley@google.com>
parents: 2160
diff changeset
   920
    seed_type: the type of entity to seed; should be a key in
91e622242f2d Respond to comments on r2769.
Daniel Bentley <dbentley@google.com>
parents: 2160
diff changeset
   921
               SEEDABLE_MODEL_TYPES
91e622242f2d Respond to comments on r2769.
Daniel Bentley <dbentley@google.com>
parents: 2160
diff changeset
   922
    goal: the total number of entities desired
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   923
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   924
  This differs from seed_many. Instead of having to specify many parameters
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   925
    that are the state of an in-flight process, simply say how many you want
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   926
    to have (at least) at the end.  This will make progress towards that goal.
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   927
    In my test run, even adding 1001 users completed in far less than the
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   928
    limit for one request, so pagination was unnecessary.
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   929
  """
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   930
  # First, figure out which model we're interested in.
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   931
  if ('seed_type' not in request.GET or
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   932
      request.GET['seed_type'] not in SEEDABLE_MODEL_TYPES):
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   933
    return http.HttpResponse(
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   934
        ('Missing or invalid required argument "seed_type" (which model'
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   935
        ' type to populate). '
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   936
        'Valid values are: %s') % SEEDABLE_MODEL_TYPES.keys())
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   937
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   938
  seeder = SEEDABLE_MODEL_TYPES[request.GET['seed_type']]
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   939
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   940
  if 'goal' not in request.GET:
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   941
    return http.HttpResponse(
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   942
        'Missing required argument "goal" (how many entities of '
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   943
        'this type you want to have in the datastore).'
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   944
        )
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   945
  goal = int(request.GET['goal'])
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   946
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   947
  # Get the highest instance of this model so that we know
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   948
  # where to start seeding new ones.
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   949
  query = db.Query(seeder.type())
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   950
  query.order('-link_id')
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   951
  # TODO(dbentley): filter for ones < user_9999
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   952
  highest_instance = query.get()
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   953
  if not highest_instance:
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   954
    start_index = 0
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   955
  else:
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   956
    # We know that seeded entities have link_id's of the form foo_%04d
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   957
    # so, we look for what's after the _ and turn it into an int.
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   958
    link_id = highest_instance.link_id
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   959
    if '_' in link_id:
2351
73448b71aa07 Add Organization Application seeding.
Dan Bentley <dbentley@google.com>
parents: 2200
diff changeset
   960
      start_index = int(link_id.split('_')[-1]) + 1
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   961
    else:
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   962
      # couldn't find seeded_entities; guessing there are none
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   963
      start_index = 0
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   964
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   965
  common_args = seeder.commonSeedArgs(request)
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   966
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   967
  # Insert from start_index to goal
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   968
  logging.info("To insert: %d to %d" % (start_index, goal))
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   969
  seeded_entities = []
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   970
  total = 0
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   971
  for i in xrange(start_index, goal):
2167
91e622242f2d Respond to comments on r2769.
Daniel Bentley <dbentley@google.com>
parents: 2160
diff changeset
   972
    if i % 20 == 0:
91e622242f2d Respond to comments on r2769.
Daniel Bentley <dbentley@google.com>
parents: 2160
diff changeset
   973
      logging.info("Inserting: %d of %d" % (i+1, goal))
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   974
    if len(seeded_entities) % 100 == 0:
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   975
      db.put(seeded_entities)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   976
      total += len(seeded_entities)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   977
      seeded_entities = []
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   978
    seeder.seed(i, entities=seeded_entities, **common_args)
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   979
2184
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   980
  db.put(seeded_entities)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   981
  total += len(seeded_entities)
a1bda9afa5d0 Step 2 of moving to new seeding model.
Daniel Bentley <dbentley@google.com>
parents: 2175
diff changeset
   982
  return http.HttpResponse('Seeded %d entities.' % total)
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   983
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
   984
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   985
def seed_many(request, *args, **kwargs):
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   986
  """Seeds many instances of the specified type.
1945
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   987
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   988
    Understands the following GET args:
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   989
    start: where to start adding new users at
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   990
    end: where to stop adding new users at
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   991
    goal: how many users to add in total, implies user_only
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   992
    step: how many users to add per request, defaults to 15
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   993
    seed_type: the type of entity to seed, should be one of:
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   994
      user, org, org_app, mentor, student_proposal
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   995
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   996
    Redirects if end < goal, incrementing both start and end with step.
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   997
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   998
  """
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   999
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1000
  get_args = request.GET
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1001
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1002
  if not dicts.containsAll(get_args, ['goal', 'start', 'end', 'seed_type']):
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1003
    return http.HttpResponse('Missing get args.')
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1004
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1005
  seed_types = {
1902
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
  1006
    'user': (seed_user, User),
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
  1007
    'org': (seed_org, Organization),
1907
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
  1008
    'org_app': (seed_org_app, OrgApplication),
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
  1009
    'mentor': (seed_mentor, Mentor),
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
  1010
    'student': (seed_student, Student),
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
  1011
    'student_proposal': (seed_student_proposal, StudentProposal),
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1012
    'survey': (seed_survey, Survey),
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1013
    'survey_answer': (seed_survey_answer, SurveyRecord),
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1014
    }
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1015
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1016
  goal = int(get_args['goal'])
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1017
  start = int(get_args['start'])
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1018
  end = int(get_args['end'])
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1019
  step = int(get_args.get('step', '15'))
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1020
  seed_type = get_args['seed_type']
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1021
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1022
  if not seed_type in seed_types:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1023
    return http.HttpResponse('Unknown seed_type: "%s".' % seed_type)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1024
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1025
  action, model = seed_types[seed_type]
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1026
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1027
  for i in range(start, end):
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1028
    try:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1029
      props = action(request, i)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1030
    except Error, error:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1031
      return http.HttpResponse(error.message)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1032
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1033
    for properties in props if isinstance(props, list) else [props]:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1034
      entity = model(**properties)
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1035
      if seed_type == 'survey':
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1036
        survey_content = survey_logic.createSurvey(properties['fields'],
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1037
                                                    properties['schema'],
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1038
                                                    this_survey=None
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1039
                                                    )
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1040
        entity.this_survey = survey_content
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1041
      elif seed_type == 'survey_answer':
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1042
        record = SurveyRecord.gql("WHERE user = :1 AND this_survey = :2",
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1043
                                  properties['user'], properties['_survey']
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1044
                                  ).get()
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1045
        entity = survey_logic.updateSurveyRecord(properties['user'],
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1046
                                                   properties['_survey'],
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1047
                                                   record,
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1048
                                                   properties['_fields']
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1049
                                                   )
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1050
      entity.put()
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1051
      if seed_type == 'survey': survey_logic._onCreate(entity) 
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1052
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1053
  if end < goal:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1054
    info = {
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1055
        'start': start + step,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1056
        'end': end + step,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1057
        'goal': goal,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1058
        'step': step,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1059
        'seed_type': seed_type,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1060
        }
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1061
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1062
    args = ["%s=%s" % (k, v) for k, v in info.iteritems()]
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1063
    url = '/seed_many?' + '&'.join(args)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1064
    return http.HttpResponseRedirect(url)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1065
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1066
  return http.HttpResponse('Done.')
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1067
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
  1068
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1069
def clear(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1070
  """Removes all entities from the datastore.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1071
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1072
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1073
  # there no explicit ranker model anywhere, so make one for
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1074
  # our own convenience to delete all rankers
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1075
  class ranker(db.Model):
2074
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
  1076
    """ranker model used with ranklist module.
5c75312566d5 Fix too long lines, style and remove unused imports in soc.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2048
diff changeset
  1077
    """
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1078
    pass
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1079
2048
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
  1080
  # TODO(dbentley): If there are more than 1000 instances of any model,
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
  1081
  # this method will not clear all instances.  Instead, it should continually
236f37777764 A new model for seeding the database that makes it easier to seed many entities.
Daniel Bentley <dbentley@google.com>
parents: 2027
diff changeset
  1082
  # call .all(), delete all those, and loop until .all() is empty.
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1083
  entities = itertools.chain(*[
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1084
      Notification.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
  1085
      Mentor.all(),
2200
a1a7c262235d Add proper generation of Student entities and StudentProposal entities to seed_db module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2184
diff changeset
  1086
      Student.all(),
2669
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1087
      Survey.all(),
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1088
      SurveyContent.all(),
c28e2dc4cd51 seed_db now creates fixture student project entities, and corresponding project surveys and grading surveys for debugging purposes.
JamesLevy <jamesalexanderlevy@gmail.com>
parents: 2367
diff changeset
  1089
      SurveyRecord.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
  1090
      OrgAdmin.all(),
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1091
      ranker.all(),
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
  1092
      RankerRoot.all(),
1906
224f597846b5 Added StudentProposal to clean_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1905
diff changeset
  1093
      StudentProposal.all(),
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
  1094
      Organization.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1095
      OrgApplication.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1096
      Timeline.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1097
      Program.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
  1098
      Host.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1099
      Sponsor.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1100
      User.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1101
      Site.all(),
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
  1102
      Document.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1103
      ])
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1104
1799
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
  1105
  try:
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
  1106
    for entity in entities:
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
  1107
      entity.delete()
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
  1108
  except db.Timeout:
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
  1109
    return http.HttpResponseRedirect('#')
2361
40b0c25a5793 Some more pylint fixes in different Melange modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2352
diff changeset
  1110
  # pylint: disable-msg=E1101
1453
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
  1111
  memcache.flush_all()
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
  1112
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
  1113
  return http.HttpResponse('Done')
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
  1114
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1115
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1116
def reseed(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1117
  """Clears and seeds the datastore.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1118
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1119
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1120
  clear(*args, **kwargs)
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
  1121
  seed(*args, **kwargs)
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
  1122
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
  1123
  return http.HttpResponse('Done')