app/soc/models/seed_db.py
author Lennard de Rijk <ljvderijk@gmail.com>
Mon, 30 Mar 2009 21:16:18 +0000
changeset 2034 59de158c936d
parent 2027 199bcab679df
child 2048 236f37777764
permissions -rw-r--r--
Fixed the duplicate slots view. The script would not clear the screen upon recalculation also the list of duplicates would increase with every iteration because the variables weren't properly reset. Patch by: Merio Ferraro, Lennard de Rijk Reviewed by: to-be-reviewed
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>',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    22
  ]
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
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    25
import datetime
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    26
import itertools
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
    27
import random
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    28
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    29
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
    30
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
    31
from google.appengine.ext import db
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    32
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
    33
from django import http
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
    34
1623
8b70d6bb3f8f Renamed rankerroot to ranker_root and made some changes due to comments.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1609
diff changeset
    35
from soc.logic.models.ranker_root import logic as ranker_root_logic
1798
ba4c00bc0c39 Use accounts.getCurrentAccount instead of users.get_current_user
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1794
diff changeset
    36
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
    37
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
    38
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
    39
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
    40
from soc.models.host import Host
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    41
from soc.models.mentor import Mentor
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    42
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
    43
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
    44
from soc.models.organization import Organization
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    45
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
    46
from soc.models.program import Program
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
    47
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
    48
from soc.models.site import Site
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
    49
from soc.models.student_proposal import StudentProposal
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    50
from soc.models.sponsor import Sponsor
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    51
from soc.models.timeline import Timeline
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    52
from soc.models.user import User
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    53
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    55
class Error(Exception):
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    56
  pass
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    57
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    58
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    59
def ensureUser():
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    60
  """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
    61
  """
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    62
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    63
  account = accounts.getCurrentAccount()
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    64
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    65
  if not account:
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    66
    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
    67
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    68
  user_properties = {
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    69
      'key_name': 'test',
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    70
      'link_id': 'test',
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    71
      'account': account,
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    72
      'name': 'Test',
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
  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
    76
  current_user.put()
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    77
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    78
  return account, current_user
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
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
    81
def seed(request, *args, **kwargs):
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    82
  """Seeds the datastore with some default values.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    83
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    84
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    85
  site_properties = {
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    86
      'key_name': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    87
      'link_id': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    88
      }
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    89
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    90
  site = Site(**site_properties)
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    91
  site.put()
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    92
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
    93
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    94
  account, current_user = ensureUser()
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    95
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    96
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
    97
  for i in range(15):
1602
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
    98
    user_properties = {
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
    99
        'key_name': 'user_%d' % i,
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   100
        'link_id': 'user_%d' % i,
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   101
        'account': users.User(email='user_%d@example.com' % i),
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   102
        'name': 'User %d' % i,
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   103
        }
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   104
    entity = User(**user_properties)
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   105
    entity.put()
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   106
723739837649 Seed some users as well
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1562
diff changeset
   107
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   108
  group_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   109
       'key_name': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   110
       'link_id': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   111
       'name': 'Google Inc.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   112
       'short_name': 'Google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   113
       'founder': current_user,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   114
       'home_page': 'http://www.google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   115
       'email': 'ospo@google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   116
       'description': 'This is the profile for Google.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   117
       'contact_street': 'Some Street',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   118
       'contact_city': 'Some City',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   119
       'contact_country': 'United States',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   120
       'contact_postalcode': '12345',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   121
       'phone': '1-555-BANANA',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   122
       'status': 'active',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   123
       }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   124
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   125
  google = Sponsor(**group_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   126
  google.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   127
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   128
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   129
  role_properties = {
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   130
      'key_name': 'google/test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   131
      'link_id': 'test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   132
      'scope': google,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   133
      'scope_path': 'google',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   134
      'user': current_user,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   135
      'given_name': 'Test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   136
      'surname': 'Example',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   137
      'name_on_documents': 'Test Example',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   138
      'email': 'test@example.com',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   139
      'res_street': 'Some Street',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   140
      'res_city': 'Some City',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   141
      'res_state': 'Some State',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   142
      'res_country': 'United States',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   143
      'res_postalcode': '12345',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   144
      'phone': '1-555-BANANA',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   145
      'birth_date': db.DateProperty.now(),
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   146
      'agreed_to_tos': True,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   147
      }
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   148
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   149
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   150
  google_host = Host(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   151
  google_host.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   152
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   153
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   154
  timeline_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   155
        'key_name': 'google/gsoc2009',
1475
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   156
        'link_id': 'gsoc2009',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   157
        'scope_path': 'google',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   158
        'scope': google,
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   159
        }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   160
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   161
  gsoc2009_timeline = Timeline(**timeline_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   162
  gsoc2009_timeline.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   163
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   164
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   165
  program_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   166
      'key_name': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   167
      'link_id': 'gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   168
      'scope_path': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   169
      'scope': google,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   170
      'name': 'Google Summer of Code 2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   171
      'short_name': 'GSoC 2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   172
      'group_label': 'GSOC',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   173
      '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
   174
      'apps_tasks_limit': 42,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   175
      'slots': 42,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   176
      'workflow': 'gsoc',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   177
      'timeline': gsoc2009_timeline,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   178
      'status': 'visible',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   179
      }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   180
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   181
  gsoc2009 = Program(**program_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   182
  gsoc2009.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   183
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   184
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   185
  timeline_properties = {
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   186
        'key_name': 'google/ghop2009',
1475
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   187
        'link_id': 'ghop2009',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   188
        'scope_path': 'google',
22b63ab59b27 Make timeline a Linkable
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1453
diff changeset
   189
        'scope': google,
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   190
        }
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   191
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   192
  ghop2009_timeline = Timeline(**timeline_properties)
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   193
  ghop2009_timeline.put()
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   194
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   195
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   196
  program_properties.update({
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   197
      'key_name': 'google/ghop2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   198
      'link_id': 'ghop2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   199
      '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
   200
      'short_name': 'GHOP 2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   201
      'group_label': 'GHOP',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   202
      '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
   203
      'workflow': 'ghop',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   204
      'timeline': ghop2009_timeline,
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   205
      })
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   206
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   207
  ghop2009 = Program(**program_properties)
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   208
  ghop2009.put()
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   209
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   210
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   211
  org_app_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   212
    'scope_path': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   213
    'scope': gsoc2009,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   214
    'applicant': current_user,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   215
    'home_page': 'http://www.google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   216
    '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
   217
    '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
   218
    '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
   219
    '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
   220
    'description': 'This is an awesome org!',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   221
    'why_applying': 'Because we can',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   222
    'member_criteria': 'They need to be awesome',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   223
    '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
   224
    'license_name': 'Apache License, 2.0',
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   225
    '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
   226
    '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
   227
    'member_disappears': 'See above',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   228
    'encourage_contribs': 'We offer them cookies.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   229
    'continued_contribs': 'We promise them a cake.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   230
    'agreed_to_admin_agreement': True,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   231
    }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   232
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   233
  for i in range(10):
1368
bd710a3ee7e7 Typo fix in seed_db module which caused loaded organization applications not to work correctly (wrong keyname).
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1363
diff changeset
   234
    org_app_properties['key_name'] = 'google/gsoc2009/wannabe_%d' % i
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   235
    org_app_properties['link_id'] = 'wannabe_%d' % i
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   236
    org_app_properties['name'] = 'Wannabe %d' % i
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   237
    entity = OrgApplication(**org_app_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   238
    entity.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   239
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   240
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   241
  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
   242
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   243
  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
   244
    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
   245
    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
   246
    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
   247
    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
   248
    entity.put()
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   249
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   250
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   251
  group_properties.update({
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   252
    'key_name': 'google/ghop2009/melange',
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   253
    'link_id': 'melange',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   254
    'name': 'Melange Development Team',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   255
    'short_name': 'Melange',
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   256
    'scope_path': 'google/ghop2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   257
    'scope': ghop2009,
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   258
    'home_page': 'http://code.google.com/p/soc',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   259
    'description': 'Melange, share the love!',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   260
    'license_name': 'Apache License',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   261
    '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
   262
    })
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   263
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   264
  melange = Organization(**group_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   265
  melange.put()
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
   266
  # 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
   267
  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
   268
      student_proposal.DEF_SCORE, 100)
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   269
1791
26fa036d68a0 Make it possible to add more users and orgs with GET args
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1789
diff changeset
   270
1363
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   271
  group_properties.update({
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   272
    'scope_path': 'google/gsoc2009',
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   273
    'scope': gsoc2009,
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   274
    })
5667c29be1a3 Add GHOP as program and put 'Melange' under it
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1362
diff changeset
   275
1900
a2966f072219 Factor out ensureUser and add Error class in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1799
diff changeset
   276
  for i in range(15):
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   277
    group_properties.update({
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   278
        'key_name': 'google/gsoc2009/org_%d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   279
        'link_id': 'org_%d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   280
        'name': 'Organization %d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   281
        'short_name': 'Org %d' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   282
        'description': 'Organization %d!' % i,
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   283
        })
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   284
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   285
    entity = Organization(**group_properties)
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   286
    entity.put()
1609
cd285bc524f1 Create a new Ranker for each organization that is created.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1602
diff changeset
   287
    # 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
   288
    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
   289
        student_proposal.DEF_SCORE, 100)
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   290
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
   291
    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
   292
      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
   293
          '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
   294
          '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
   295
          '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
   296
          '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
   297
          '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
   298
          })
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
   299
 
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
   300
      # Admin for the first 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
   301
      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
   302
        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
   303
        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
   304
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
   305
      # 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
   306
      if i == 1:
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
   307
        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
   308
        org_1_mentor.put()
1362
31b2cb6b75d8 Seed in some orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1355
diff changeset
   309
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   310
  role_properties.update({
1434
441a2b39f88b Fixed a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1429
diff changeset
   311
      '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
   312
      'link_id': 'test',
1434
441a2b39f88b Fixed a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1429
diff changeset
   313
      'scope_path': 'google/ghop2009/melange',
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   314
      'scope': melange,
1434
441a2b39f88b Fixed a bug in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1429
diff changeset
   315
      'program': ghop2009,
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   316
      })
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   317
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   318
  melange_admin = OrgAdmin(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   319
  melange_admin.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   320
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   321
  melange_mentor = Mentor(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   322
  melange_mentor.put()
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   323
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   324
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   325
  document_properties = {
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   326
      'key_name': 'site/site/home',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   327
      'link_id': 'home',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   328
      'scope_path': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   329
      'scope': site,
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   330
      'prefix': 'site',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   331
      'author': current_user,
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   332
      'title': 'Home Page',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   333
      'short_name': 'Home',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   334
      'content': 'This is the Home Page',
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   335
      'modified_by': current_user,
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   336
      }
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   337
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   338
  home_document = Document(**document_properties)
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   339
  home_document.put()
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   340
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   341
1415
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   342
  document_properties = {
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   343
      '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
   344
      'link_id': 'notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   345
      'scope_path': 'test',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   346
      'scope': current_user,
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   347
      'prefix': 'user',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   348
      'author': current_user,
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   349
      'title': 'My Notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   350
      'short_name': 'Notes',
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   351
      '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
   352
      'modified_by': current_user,
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   353
      }
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   354
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   355
  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
   356
  notes_document.put()
d34768bf62d8 Added a document in the test user's user space
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1390
diff changeset
   357
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   358
  site.home = home_document
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   359
  site.put()
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   360
1453
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
   361
  memcache.flush_all()
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
   362
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
   363
  return http.HttpResponse('Done')
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   364
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   365
1902
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   366
def seed_user(request, i):
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   367
  """Returns the properties for a new user entity.
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   368
  """
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   369
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   370
  properties = {
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   371
      'key_name': 'user_%(num)d' % i,
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   372
      'link_id': 'user_%(num)d' % i,
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   373
      'account': users.User(email='user_%(num)d@example.com' % i),
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   374
      'name': 'User %(num)d' % i,
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   375
      }
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   376
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   377
  return properties
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   378
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   379
1907
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   380
def seed_org_app(request, i):
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   381
  """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
   382
  """
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   383
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   384
  account, current_user = ensureUser()
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   385
  status = request.GET.get('status', 'pre-accepted')
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   386
  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
   387
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   388
  if not gsoc2009:
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   389
    raise Error('Run seed_db first')
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   390
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   391
  properties = {
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   392
      'key_name': 'google/gsoc2009/org_app_%d' % i,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   393
      'link_id': 'org_app_%d' % i,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   394
      'name': 'Org App %d' % i,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   395
      'scope_path': 'google/gsoc2009',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   396
      'scope': gsoc2009,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   397
      'status': status,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   398
      'applicant': current_user,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   399
      'home_page': 'http://www.google.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   400
      'email': 'org@example.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   401
      'irc_channel': '#care',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   402
      'pub_mailing_list': 'http://groups.google.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   403
      'dev_mailing_list': 'http://groups.google.com',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   404
      'description': 'This is an awesome org!',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   405
      'why_applying': 'Because we can',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   406
      'member_criteria': 'They need to be awesome',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   407
      'license_name': 'Apache License, 2.0',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   408
      '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
   409
      '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
   410
      'member_disappears': 'See above',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   411
      'encourage_contribs': 'We offer them cookies.',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   412
      'continued_contribs': 'We promise them a cake.',
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   413
      'agreed_to_admin_agreement': True,
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   414
      }
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   415
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   416
  return properties
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   417
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   418
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   419
def seed_org(request, i):
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   420
  """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
   421
  """
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   422
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   423
  account, current_user = ensureUser()
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   424
  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
   425
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   426
  if not gsoc2009:
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   427
    raise Error('Run seed_db first')
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   428
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   429
  properties = {
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   430
      'key_name': 'google/gsoc2009/%d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   431
      'link_id': 'org_%d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   432
      'name': 'Organization %d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   433
      'short_name': 'Org %d' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   434
      'founder': current_user,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   435
      'scope_path': 'google/gsoc2009',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   436
      'scope': gsoc2009,
1929
1ce28a2dd71f Added missing status to seeded orgs
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1907
diff changeset
   437
      'status': 'active',
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   438
      'email': 'org_%i@example.com' % i,
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   439
      '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
   440
      'description': 'Melange, share the love!',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   441
      'license_name': 'Apache License',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   442
      'contact_street': 'Some Street',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   443
      'contact_city': 'Some City',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   444
      'contact_country': 'United States',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   445
      'contact_postalcode': '12345',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   446
      'phone': '1-555-BANANA',
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   447
      '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
   448
      }
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   449
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   450
  return properties
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   451
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   452
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   453
def seed_mentor(request, i):
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   454
  """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
   455
  """
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   456
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   457
  account, current_user = ensureUser()
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   458
  org = Organization.get_by_key_name('google/gsoc2009/%d' % i)
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   459
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   460
  if not org:
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   461
    raise Error('Run seed_many for at least %d orgs first.' % i)
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   462
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   463
  properties = {
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   464
      '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
   465
      'link_id': 'mentor',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   466
      'scope': org,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   467
      'scope_path': org.key().name(),
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   468
      'user': current_user,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   469
      'given_name': 'Mentor',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   470
      'surname': 'Man',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   471
      'name_on_documents': 'Mentor Man',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   472
      'email': 'mentor@example.com',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   473
      'res_street': 'Some Street',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   474
      'res_city': 'Some City',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   475
      'res_state': 'Some State',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   476
      'res_country': 'United States',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   477
      'res_postalcode': '12345',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   478
      'phone': '1-555-BANANA',
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   479
      'birth_date': db.DateProperty.now(),
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   480
      'agreed_to_tos': True,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   481
      'program': org.scope,
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   482
      }
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   483
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   484
  return properties
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   485
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   486
def seed_student_proposal(request, i):
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   487
  """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
   488
  """
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   489
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   490
  account, current_user = ensureUser()
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   491
  org = Organization.get_by_key_name('google/gsoc2009/%d' % i)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   492
  mentor = Mentor.get_by_key_name('google/gsoc2009/org_%d/mentor' % i)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   493
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   494
  if not org:
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   495
    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
   496
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   497
  if not mentor:
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   498
    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
   499
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   500
  all_properties = []
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   501
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   502
  for i in range(random.randint(5, 20)):
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   503
    link_id = 'proposal_%s_%d' % (org.key().name(), i)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   504
    scope_path = current_user.key().name()
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   505
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   506
    properties = {
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   507
        'link_id': link_id,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   508
        'scope_path': scope_path,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   509
        'scope': current_user,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   510
        'key_name': '%s/%s' % (scope_path, link_id),
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   511
        'title':'The Awesome Proposal',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   512
        '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
   513
        '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
   514
        'additional_info': 'http://www.zipit.com',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   515
        'mentor': mentor,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   516
        'status': 'pending',
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   517
        'org': org,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   518
        'program': org.scope,
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   519
        }
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   520
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   521
    all_properties.append(properties)
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   522
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   523
  return all_properties
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   524
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   525
def seed_many(request, *args, **kwargs):
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   526
  """Seeds many instances of the specified type.
1945
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   527
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   528
    Understands the following GET args:
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   529
    start: where to start adding new users at
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   530
    end: where to stop adding new users at
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   531
    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
   532
    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
   533
    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
   534
      user, org, org_app, mentor, student_proposal
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   535
ad3e6c4bb604 Moved and updated seed_many documentation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1929
diff changeset
   536
    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
   537
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   538
  """
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   539
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   540
  get_args = request.GET
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   541
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   542
  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
   543
    return http.HttpResponse('Missing get args.')
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   544
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   545
  seed_types = {
1902
be3dbaa17114 Added seed user to seed many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1901
diff changeset
   546
    'user': (seed_user, User),
1903
9d95d3e20773 Added seed org support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1902
diff changeset
   547
    'org': (seed_org, Organization),
1907
8e1ea5609325 Added org app seeding to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1906
diff changeset
   548
    'org_app': (seed_org_app, OrgApplication),
1904
63b026919efd Add seed mentor support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1903
diff changeset
   549
    'mentor': (seed_mentor, Mentor),
1905
8065fd1f3e4c Added seed student proposal support to seed_many
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1904
diff changeset
   550
    'student_proposal': (seed_student_proposal, StudentProposal),
1901
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   551
    }
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   552
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   553
  goal = int(get_args['goal'])
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   554
  start = int(get_args['start'])
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   555
  end = int(get_args['end'])
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   556
  step = int(get_args.get('step', '15'))
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   557
  seed_type = get_args['seed_type']
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   558
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   559
  if not seed_type in seed_types:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   560
    return http.HttpResponse('Unknown seed_type: "%s".' % seed_type)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   561
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   562
  action, model = seed_types[seed_type]
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   563
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   564
  for i in range(start, end):
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   565
    try:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   566
      props = action(request, i)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   567
    except Error, error:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   568
      return http.HttpResponse(error.message)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   569
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   570
    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
   571
      entity = model(**properties)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   572
      entity.put()
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   573
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   574
  if end < goal:
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   575
    info = {
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   576
        'start': start + step,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   577
        'end': end + step,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   578
        'goal': goal,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   579
        'step': step,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   580
        'seed_type': seed_type,
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   581
        }
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   582
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   583
    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
   584
    url = '/seed_many?' + '&'.join(args)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   585
    return http.HttpResponseRedirect(url)
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   586
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   587
  return http.HttpResponse('Done.')
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   588
5a98e8a8efb5 Added a seed_many url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1900
diff changeset
   589
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   590
def clear(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   591
  """Removes all entities from the datastore.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   592
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   593
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
   594
  # 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
   595
  # our own convenience to delete all rankers
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
   596
  class ranker(db.Model):
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
   597
    pass
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
   598
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   599
  entities = itertools.chain(*[
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   600
      Notification.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   601
      Mentor.all(),
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   602
      OrgAdmin.all(),
1794
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
   603
      ranker.all(),
6ffd25bedef9 Also clear RankerRoot and ranker from datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1793
diff changeset
   604
      RankerRoot.all(),
1906
224f597846b5 Added StudentProposal to clean_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1905
diff changeset
   605
      StudentProposal.all(),
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   606
      Organization.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   607
      OrgApplication.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   608
      Timeline.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   609
      Program.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   610
      Host.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   611
      Sponsor.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   612
      User.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   613
      Site.all(),
1355
7a00bcfa0371 Add a Home document to the seeded entities
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1348
diff changeset
   614
      Document.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   615
      ])
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   616
1799
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
   617
  try:
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
   618
    for entity in entities:
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
   619
      entity.delete()
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
   620
  except db.Timeout:
53d15b129a3b Redirect to current page if the current request times out
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1798
diff changeset
   621
    return http.HttpResponseRedirect('#')
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   622
1453
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
   623
  memcache.flush_all()
378c844bf52c Flush cache after seeding or clearing the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1434
diff changeset
   624
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
   625
  return http.HttpResponse('Done')
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
   626
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   627
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   628
def reseed(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   629
  """Clears and seeds the datastore.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   630
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   631
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   632
  clear(*args, **kwargs)
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   633
  seed(*args, **kwargs)
1789
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
   634
6f112b2ebd1f Return a HttpResponse in seed_db
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1623
diff changeset
   635
  return http.HttpResponse('Done')