app/soc/models/seed_db.py
author Sverre Rabbelier <srabbelier@gmail.com>
Sun, 15 Feb 2009 16:11:47 +0000
changeset 1348 8e3bd495729f
parent 1335 a8c5b1e200bd
child 1355 7a00bcfa0371
permissions -rw-r--r--
Seed more roles and factor out common properties Patch by: Sverre Rabbelier
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
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    27
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    28
from google.appengine.api import users
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    29
from google.appengine.ext import db
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    30
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
from soc.models.site import Site
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    32
from soc.models.user import User
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    33
from soc.models.sponsor import Sponsor
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    34
from soc.models.host import Host
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    35
from soc.models.program import Program
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    36
from soc.models.timeline import Timeline
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    37
from soc.models.org_app import OrgApplication
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
    38
from soc.models.organization import Organization
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    39
from soc.models.org_admin import OrgAdmin
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    40
from soc.models.mentor import Mentor
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    41
from soc.models.notification import Notification
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    42
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    43
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    44
def seed(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    45
  """Seeds the datastore with some default values.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    46
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    47
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
  account = users.get_current_user()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    50
  if not account:
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    51
    account = users.User(email='test@example.com')
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    52
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    53
  user_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
        'key_name': 'test',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
        'link_id': 'test',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    56
        'account': account,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    57
        'agreed_to_tos': True,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    58
        'name': 'Test',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    59
        }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    60
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    61
  current_user = User(**user_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    62
  current_user.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    63
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    64
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    65
  group_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    66
       'key_name': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    67
       'link_id': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    68
       'name': 'Google Inc.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    69
       'short_name': 'Google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    70
       'founder': current_user,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    71
       'home_page': 'http://www.google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    72
       'email': 'ospo@google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    73
       'description': 'This is the profile for Google.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    74
       'contact_street': 'Some Street',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    75
       'contact_city': 'Some City',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    76
       'contact_country': 'United States',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    77
       'contact_postalcode': '12345',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    78
       'phone': '1-555-BANANA',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    79
       'status': 'active',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    80
       }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    81
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    82
  google = Sponsor(**group_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    83
  google.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    84
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    85
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    86
  role_properties = {
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    87
      'key_name': 'google/test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    88
      'link_id': 'test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    89
      'scope': google,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    90
      'scope_path': 'google',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    91
      'user': current_user,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    92
      'given_name': 'Test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    93
      'surname': 'Example',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    94
      'name_on_documents': 'Test Example',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    95
      'email': 'test@example.com',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    96
      'res_street': 'Some Street',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    97
      'res_city': 'Some City',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    98
      'res_state': 'Some State',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
    99
      'res_country': 'United States',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   100
      'res_postalcode': '12345',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   101
      'phone': '1-555-BANANA',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   102
      'birth_date': db.DateProperty.now(),
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   103
      'agreed_to_tos': True,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   104
      }
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   105
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   106
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   107
  google_host = Host(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   108
  google_host.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   109
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   110
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   111
  timeline_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   112
        'key_name': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   113
        'scope_path': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   114
        }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   115
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   116
  gsoc2009_timeline = Timeline(**timeline_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   117
  gsoc2009_timeline.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   118
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   119
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   120
  program_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   121
      'key_name': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   122
      'link_id': 'gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   123
      'scope_path': 'google',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   124
      'scope': google,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   125
      'name': 'Google Summer of Code 2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   126
      'short_name': 'GSoC 2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   127
      'group_label': 'GSOC',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   128
      '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
   129
      'apps_tasks_limit': 42,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   130
      'slots': 42,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   131
      'workflow': 'gsoc',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   132
      'timeline': gsoc2009_timeline,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   133
      'status': 'visible',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   134
      }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   135
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   136
  gsoc2009 = Program(**program_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   137
  gsoc2009.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   138
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   139
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   140
  org_app_properties = {
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   141
    'scope_path': 'google/gsoc2009',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   142
    'scope': gsoc2009,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   143
    'applicant': current_user,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   144
    'home_page': 'http://www.google.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   145
    'email': 'org@example.com',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   146
    'description': 'This is an awesome org!',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   147
    'why_applying': 'Because we can',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   148
    'member_criteria': 'They need to be awesome',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   149
    'status': 'pre-accepted',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   150
    'license_name': 'WTFPL',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   151
    '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
   152
    '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
   153
    'member_disappears': 'See above',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   154
    'encourage_contribs': 'We offer them cookies.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   155
    'continued_contribs': 'We promise them a cake.',
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   156
    'agreed_to_admin_agreement': True,
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   157
    }
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   158
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   159
  for i in range(15):
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   160
    org_app_properties['key_name'] = 'google/gsoc2009/org_%d' % i
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   161
    org_app_properties['link_id'] = 'org_%d' % i
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   162
    org_app_properties['name'] = 'Organization %d' % i
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   163
    entity = OrgApplication(**org_app_properties)
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   164
    entity.put()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   165
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   166
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   167
  group_properties.update({
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   168
    'key_name': 'google/gsoc2009/melange',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   169
    'link_id': 'melange',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   170
    'name': 'Melange Development Team',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   171
    'short_name': 'Melange',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   172
    'scope_path': 'google/gsoc2009',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   173
    'scope': gsoc2009,
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   174
    'home_page': 'http://code.google.com/p/soc',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   175
    'description': 'Melange, share the love!',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   176
    'license_name': 'Apache License',
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   177
    '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
   178
    })
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   179
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   180
  melange = Organization(**group_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   181
  melange.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   182
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   183
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   184
  role_properties.update({
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   185
      'key_name': 'google/gsoc2009/melange/test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   186
      'link_id': 'test',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   187
      'scope_path': 'google/gsoc2009/melange',
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   188
      'scope': melange,
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   189
      })
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   190
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   191
  melange_admin = OrgAdmin(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   192
  melange_admin.put()
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   193
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   194
  melange_mentor = Mentor(**role_properties)
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   195
  melange_mentor.put()
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   196
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   197
  return
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   198
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   199
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   200
def clear(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   201
  """Removes all entities from the datastore.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   202
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   203
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   204
  entities = itertools.chain(*[
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   205
      Notification.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   206
      Mentor.all(),
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   207
      OrgAdmin.all(),
1335
a8c5b1e200bd Added melange as org.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1332
diff changeset
   208
      Organization.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   209
      OrgApplication.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   210
      Timeline.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   211
      Program.all(),
1348
8e3bd495729f Seed more roles and factor out common properties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1335
diff changeset
   212
      Host.all(),
1332
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   213
      Sponsor.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   214
      User.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   215
      Site.all(),
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   216
      ])
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   217
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   218
  for entity in entities:
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   219
    entity.delete()
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   220
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   221
  return
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   222
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   223
def reseed(*args, **kwargs):
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   224
  """Clears and seeds the datastore.
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   225
  """
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   226
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   227
  clear(*args, **kwargs)
6655b1e89adb Add a script to (re)seed the datastore
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   228
  seed(*args, **kwargs)