Exemple #1
0
  def seed(self, i, entities=None, current_user=None, gsoc2009=None,
           status=None):
    properties = {
        'key_name': 'google/gsoc2009/org_%04d' % i,
        'link_id': 'org_%04d' % i,
        'name': 'Org App %04d' % i,
        'scope_path': 'google/gsoc2009',
        'scope': gsoc2009,
        'status': status,
        'applicant': current_user,
        'home_page': 'http://www.google.com',
        'email': '*****@*****.**',
        'irc_channel': '#care',
        'pub_mailing_list': 'http://groups.google.com',
        'dev_mailing_list': 'http://groups.google.com',
        'description': 'This is an awesome org!',
        'why_applying': 'Because we can',
        'member_criteria': 'They need to be awesome',
        'license_name': 'Apache License, 2.0',
        'ideas': 'http://code.google.com/p/soc/issues',
        'contrib_disappears': 'We use google to find them',
        'member_disappears': 'See above',
        'encourage_contribs': 'We offer them cookies.',
        'continued_contribs': 'We promise them a cake.',
        'agreed_to_admin_agreement': True,
        }

    org_application = OrgApplication(**properties)
    if entities is None:
      org_application.put()
    else:
      entities.append(org_application)
Exemple #2
0
def clear(*args, **kwargs):
    """Removes all entities from the datastore.
  """

    # there no explicit ranker model anywhere, so make one for
    # our own convenience to delete all rankers
    class ranker(db.Model):
        """ranker model used with ranklist module.
    """
        pass

    # TODO(dbentley): If there are more than 1000 instances of any model,
    # this method will not clear all instances.  Instead, it should continually
    # call .all(), delete all those, and loop until .all() is empty.
    entities = itertools.chain(*[
        Notification.all(),
        GSoCMentor.all(),
        GHOPMentor.all(),
        GSoCStudent.all(),
        GHOPStudent.all(),
        Survey.all(),
        SurveyContent.all(),
        SurveyRecord.all(),
        GSoCOrgAdmin.all(),
        GHOPOrgAdmin.all(),
        ranker.all(),
        RankerRoot.all(),
        StudentProposal.all(),
        GSoCOrganization.all(),
        GHOPOrganization.all(),
        OrgApplication.all(),
        GSoCTimeline.all(),
        GHOPTimeline.all(),
        GSoCProgram.all(),
        GHOPProgram.all(),
        Host.all(),
        Sponsor.all(),
        User.all(),
        Site.all(),
        Document.all(),
    ])

    try:
        for entity in entities:
            entity.delete()
    except db.Timeout:
        return http.HttpResponseRedirect('#')
    # pylint: disable-msg=E1101
    memcache.flush_all()

    return http.HttpResponse('Done')
Exemple #3
0
    def seed(self,
             i,
             entities=None,
             current_user=None,
             gsoc2009=None,
             status=None):
        properties = {
            'key_name': 'google/gsoc2009/org_%04d' % i,
            'link_id': 'org_%04d' % i,
            'name': 'Org App %04d' % i,
            'scope_path': 'google/gsoc2009',
            'scope': gsoc2009,
            'status': status,
            'applicant': current_user,
            'home_page': 'http://www.google.com',
            'email': '*****@*****.**',
            'irc_channel': '#care',
            'pub_mailing_list': 'http://groups.google.com',
            'dev_mailing_list': 'http://groups.google.com',
            'description': 'This is an awesome org!',
            'why_applying': 'Because we can',
            'member_criteria': 'They need to be awesome',
            'license_name': 'Apache License, 2.0',
            'ideas': 'http://code.google.com/p/soc/issues',
            'contrib_disappears': 'We use google to find them',
            'member_disappears': 'See above',
            'encourage_contribs': 'We offer them cookies.',
            'continued_contribs': 'We promise them a cake.',
            'agreed_to_admin_agreement': True,
        }

        org_application = OrgApplication(**properties)
        if entities is None:
            org_application.put()
        else:
            entities.append(org_application)
Exemple #4
0
def clear(*args, **kwargs):
  """Removes all entities from the datastore.
  """

  # there no explicit ranker model anywhere, so make one for
  # our own convenience to delete all rankers
  class ranker(db.Model):
    """ranker model used with ranklist module.
    """
    pass

  # TODO(dbentley): If there are more than 1000 instances of any model,
  # this method will not clear all instances.  Instead, it should continually
  # call .all(), delete all those, and loop until .all() is empty.
  entities = itertools.chain(*[
      Notification.all(),
      Mentor.all(),
      Student.all(),
      OrgAdmin.all(),
      ranker.all(),
      RankerRoot.all(),
      StudentProposal.all(),
      Organization.all(),
      OrgApplication.all(),
      Timeline.all(),
      Program.all(),
      Host.all(),
      Sponsor.all(),
      User.all(),
      Site.all(),
      Document.all(),
      ])

  try:
    for entity in entities:
      entity.delete()
  except db.Timeout:
    return http.HttpResponseRedirect('#')
  # pylint: disable-msg=E1101
  memcache.flush_all()

  return http.HttpResponse('Done')
Exemple #5
0
def seed(request, *args, **kwargs):
    """Seeds the datastore with some default values.
  """

    site_properties = {
        'key_name': 'site',
        'link_id': 'site',
    }

    site = Site(**site_properties)
    site.put()

    _, current_user = ensureUser()

    seeder = UserSeeder()
    for i in range(15):
        seeder.seed(i)

    group_properties = {
        'key_name': 'google',
        'link_id': 'google',
        'name': 'Google Inc.',
        'short_name': 'Google',
        'founder': current_user,
        'home_page': 'http://www.google.com',
        'email': '*****@*****.**',
        'description': 'This is the profile for Google.',
        'contact_street': 'Some Street',
        'contact_city': 'Some City',
        'contact_country': 'United States',
        'contact_postalcode': '12345',
        'phone': '1-555-BANANA',
        'status': 'active',
    }

    google = Sponsor(**group_properties)
    google.put()

    role_properties = {
        'key_name': 'google/test',
        'link_id': 'test',
        'scope': google,
        'scope_path': 'google',
        'user': current_user,
        'given_name': 'Test',
        'surname': 'Example',
        'name_on_documents': 'Test Example',
        'email': '*****@*****.**',
        'res_street': 'Some Street',
        'res_city': 'Some City',
        'res_state': 'Some State',
        'res_country': 'United States',
        'res_postalcode': '12345',
        'phone': '1-555-BANANA',
        'birth_date': db.DateProperty.now(),
        'agreed_to_tos': True,
    }

    google_host = Host(**role_properties)
    google_host.put()

    timeline_properties = {
        'key_name': 'google/gsoc2009',
        'link_id': 'gsoc2009',
        'scope_path': 'google',
        'scope': google,
    }

    gsoc2009_timeline = GSoCTimeline(**timeline_properties)
    gsoc2009_timeline.put()

    program_properties = {
        'key_name': 'google/gsoc2009',
        'link_id': 'gsoc2009',
        'scope_path': 'google',
        'scope': google,
        'name': 'Google Summer of Code 2009',
        'short_name': 'GSoC 2009',
        'group_label': 'GSOC',
        'description': 'This is the program for GSoC 2009.',
        'apps_tasks_limit': 42,
        'slots': 42,
        'timeline': gsoc2009_timeline,
        'status': 'visible',
    }

    gsoc2009 = GSoCProgram(**program_properties)
    gsoc2009.put()

    # TODO: Use real GHOPProgram here
    timeline_properties = {
        'key_name': 'google/ghop2009',
        'link_id': 'ghop2009',
        'scope_path': 'google',
        'scope': google,
    }

    ghop2009_timeline = GHOPTimeline(**timeline_properties)
    ghop2009_timeline.put()

    program_properties.update({
        'key_name': 'google/ghop2009',
        'link_id': 'ghop2009',
        'name': 'Google Highly Open Participation Contest 2009',
        'short_name': 'GHOP 2009',
        'group_label': 'GHOP',
        'description': 'This is the program for GHOP 2009.',
        'timeline': ghop2009_timeline,
    })

    ghop2009 = GHOPProgram(**program_properties)
    ghop2009.put()

    org_app_properties = {
        'scope_path': 'google/gsoc2009',
        'scope': gsoc2009,
        'applicant': current_user,
        'home_page': 'http://www.google.com',
        'email': '*****@*****.**',
        'irc_channel': '#care',
        'pub_mailing_list': 'http://groups.google.com',
        'dev_mailing_list': 'http://groups.google.com',
        'description': 'This is an awesome org!',
        'why_applying': 'Because we can',
        'member_criteria': 'They need to be awesome',
        'status': 'pre-accepted',
        'license_name': 'Apache License, 2.0',
        'ideas': 'http://code.google.com/p/soc/issues',
        'contrib_disappears': 'We use google to find them',
        'member_disappears': 'See above',
        'encourage_contribs': 'We offer them cookies.',
        'continued_contribs': 'We promise them a cake.',
        'agreed_to_admin_agreement': True,
    }

    for i in range(10):
        org_app_properties['key_name'] = 'google/gsoc2009/org_%04d' % i
        org_app_properties['link_id'] = 'org_%04d' % i
        org_app_properties['name'] = 'Org App %04d' % i
        entity = OrgApplication(**org_app_properties)
        entity.put()

    org_app_properties['status'] = 'pre-rejected'

    for i in range(10, 20):
        org_app_properties['key_name'] = 'google/gsoc2009/loser_%d' % i
        org_app_properties['link_id'] = 'loser_%d' % i
        org_app_properties['name'] = 'Loser %d' % i
        entity = OrgApplication(**org_app_properties)
        entity.put()

    group_properties.update({
        'key_name': 'google/ghop2009/melange',
        'link_id': 'melange',
        'name': 'Melange Development Team',
        'short_name': 'Melange',
        'scope_path': 'google/ghop2009',
        'scope': ghop2009,
        'home_page': 'http://code.google.com/p/soc',
        'description': 'Melange, share the love!',
        'license_name': 'Apache License',
        'ideas': 'http://code.google.com/p/soc/issues',
    })

    melange = GHOPOrganization(**group_properties)
    melange.put()
    # create a new ranker
    ranker_root_logic.create(student_proposal.DEF_RANKER_NAME, melange,
                             student_proposal.DEF_SCORE, 100)

    group_properties.update({
        'scope_path': 'google/gsoc2009',
        'scope': gsoc2009,
    })

    orgs = []
    for i in range(15):
        group_properties.update({
            'key_name': 'google/gsoc2009/org_%d' % i,
            'link_id': 'org_%d' % i,
            'name': 'Organization %d' % i,
            'short_name': 'Org %d' % i,
            'description': 'Organization %d!' % i,
        })

        entity = GSoCOrganization(**group_properties)
        orgs.append(entity)
        entity.put()
        # create a new ranker
        ranker_root_logic.create(student_proposal.DEF_RANKER_NAME, entity,
                                 student_proposal.DEF_SCORE, 100)

        if i < 2:
            role_properties.update({
                'key_name': 'google/gsoc2009/org_%d/test' % i,
                'link_id': 'test',
                'scope_path': 'google/gsoc2009/org_%d' % i,
                'scope': entity,
                'program': gsoc2009,
            })

            # Admin for the first org
            if i == 0:
                org_1_admin = GSoCOrgAdmin(**role_properties)
                org_1_admin.put()

            # Only a mentor for the second org
            if i == 1:
                org_1_admin = GSoCOrgAdmin(**role_properties)
                org_1_admin.put()
                org_1_mentor = GSoCMentor(**role_properties)
                org_1_mentor.put()

    role_properties.update({
        'key_name': 'google/ghop2009/melange/test',
        'link_id': 'test',
        'scope_path': 'google/ghop2009/melange',
        'scope': melange,
        'program': ghop2009,
    })

    melange_admin = GHOPOrgAdmin(**role_properties)
    melange_admin.put()

    melange_mentor = GHOPMentor(**role_properties)
    melange_mentor.put()

    student_id = 'test'
    student_properties = {
        'key_name': gsoc2009.key().name() + "/" + student_id,
        'link_id': student_id,
        'scope_path': gsoc2009.key().name(),
        'scope': gsoc2009,
        'program': gsoc2009,
        'user': current_user,
        'given_name': 'test',
        'surname': 'test',
        'birth_date': db.DateProperty.now(),
        'email': '*****@*****.**',
        'im_handle': 'test_im_handle',
        'major': 'test major',
        'name_on_documents': 'test',
        'res_country': 'United States',
        'res_city': 'city',
        'res_street': 'test street',
        'res_postalcode': '12345',
        'publish_location': True,
        'blog': 'http://www.blog.com/',
        'home_page': 'http://www.homepage.com/',
        'photo_url': 'http://www.photosite.com/thumbnail.png',
        'ship_state': None,
        'expected_graduation': 2009,
        'school_country': 'United States',
        'school_name': 'Test School',
        'tshirt_size': 'XS',
        'tshirt_style': 'male',
        'degree': 'Undergraduate',
        'phone': '1650253000',
        'can_we_contact_you': True,
        'program_knowledge': 'I heard about this program through a friend.'
    }

    melange_student = GSoCStudent(**student_properties)
    melange_student.put()

    student_id = 'test2'
    student_properties.update({
        'key_name': gsoc2009.key().name() + "/" + student_id,
        'link_id': student_id,
        'user': current_user
    })

    melange_student2 = GSoCStudent(**student_properties)
    melange_student2.put()

    project_id = 'test_project'
    project_properties = {
        'key_name': gsoc2009.key().name() + "/org_1/" + project_id,
        'link_id': project_id,
        'scope_path': gsoc2009.key().name() + "/org_1",
        'scope': orgs[1].key(),
        'title': 'test project',
        'abstract': 'test abstract',
        'status': 'accepted',
        'student': melange_student,
        'mentor': org_1_mentor,
        'program': gsoc2009
    }

    melange_project = StudentProject(**project_properties)
    melange_project.put()

    project_id = 'test_project2'
    project_properties.update({
        'key_name': gsoc2009.key().name() + "/org_1/" + project_id,
        'link_id': project_id,
        'student': melange_student2,
        'title': 'test project2'
    })

    melange_project2 = StudentProject(**project_properties)
    melange_project2.put()

    document_properties = {
        'key_name': 'site/site/home',
        'link_id': 'home',
        'scope_path': 'site',
        'scope': site,
        'prefix': 'site',
        'author': current_user,
        'title': 'Home Page',
        'short_name': 'Home',
        'content': 'This is the Home Page',
        'modified_by': current_user,
    }

    home_document = Document(**document_properties)
    home_document.put()
    document_logic._onCreate(home_document)

    document_properties = {
        'key_name': 'user/test/notes',
        'link_id': 'notes',
        'scope_path': 'test',
        'scope': current_user,
        'prefix': 'user',
        'author': current_user,
        'title': 'My Notes',
        'short_name': 'Notes',
        'content': 'These are my notes',
        'modified_by': current_user,
    }

    notes_document = Document(**document_properties)
    notes_document.put()
    document_logic._onCreate(home_document)

    site.home = home_document
    site.put()
    # pylint: disable-msg=E1101
    memcache.flush_all()

    return http.HttpResponse('Done')
Exemple #6
0
def seed(request, *args, **kwargs):
  """Seeds the datastore with some default values.
  """

  site_properties = {
      'key_name': 'site',
      'link_id': 'site',
      }

  site = Site(**site_properties)
  site.put()


  _, current_user = ensureUser()


  seeder = UserSeeder()
  for i in range(15):
    seeder.seed(i)

  group_properties = {
       'key_name': 'google',
       'link_id': 'google',
       'name': 'Google Inc.',
       'short_name': 'Google',
       'founder': current_user,
       'home_page': 'http://www.google.com',
       'email': '*****@*****.**',
       'description': 'This is the profile for Google.',
       'contact_street': 'Some Street',
       'contact_city': 'Some City',
       'contact_country': 'United States',
       'contact_postalcode': '12345',
       'phone': '1-555-BANANA',
       'status': 'active',
       }

  google = Sponsor(**group_properties)
  google.put()


  role_properties = {
      'key_name': 'google/test',
      'link_id': 'test',
      'scope': google,
      'scope_path': 'google',
      'user': current_user,
      'given_name': 'Test',
      'surname': 'Example',
      'name_on_documents': 'Test Example',
      'email': '*****@*****.**',
      'res_street': 'Some Street',
      'res_city': 'Some City',
      'res_state': 'Some State',
      'res_country': 'United States',
      'res_postalcode': '12345',
      'phone': '1-555-BANANA',
      'birth_date': db.DateProperty.now(),
      'agreed_to_tos': True,
      }


  google_host = Host(**role_properties)
  google_host.put()


  timeline_properties = {
        'key_name': 'google/gsoc2009',
        'link_id': 'gsoc2009',
        'scope_path': 'google',
        'scope': google,
        }

  gsoc2009_timeline = Timeline(**timeline_properties)
  gsoc2009_timeline.put()


  program_properties = {
      'key_name': 'google/gsoc2009',
      'link_id': 'gsoc2009',
      'scope_path': 'google',
      'scope': google,
      'name': 'Google Summer of Code 2009',
      'short_name': 'GSoC 2009',
      'group_label': 'GSOC',
      'description': 'This is the program for GSoC 2009.',
      'apps_tasks_limit': 42,
      'slots': 42,
      'workflow': 'gsoc',
      'timeline': gsoc2009_timeline,
      'status': 'visible',
      }

  gsoc2009 = Program(**program_properties)
  gsoc2009.put()


  timeline_properties = {
        'key_name': 'google/ghop2009',
        'link_id': 'ghop2009',
        'scope_path': 'google',
        'scope': google,
        }

  ghop2009_timeline = Timeline(**timeline_properties)
  ghop2009_timeline.put()


  program_properties.update({
      'key_name': 'google/ghop2009',
      'link_id': 'ghop2009',
      'name': 'Google Highly Open Participation Contest 2009',
      'short_name': 'GHOP 2009',
      'group_label': 'GHOP',
      'description': 'This is the program for GHOP 2009.',
      'workflow': 'ghop',
      'timeline': ghop2009_timeline,
      })

  ghop2009 = Program(**program_properties)
  ghop2009.put()


  org_app_properties = {
    'scope_path': 'google/gsoc2009',
    'scope': gsoc2009,
    'applicant': current_user,
    'home_page': 'http://www.google.com',
    'email': '*****@*****.**',
    'irc_channel': '#care',
    'pub_mailing_list': 'http://groups.google.com',
    'dev_mailing_list': 'http://groups.google.com',
    'description': 'This is an awesome org!',
    'why_applying': 'Because we can',
    'member_criteria': 'They need to be awesome',
    'status': 'pre-accepted',
    'license_name': 'Apache License, 2.0',
    'ideas': 'http://code.google.com/p/soc/issues',
    'contrib_disappears': 'We use google to find them',
    'member_disappears': 'See above',
    'encourage_contribs': 'We offer them cookies.',
    'continued_contribs': 'We promise them a cake.',
    'agreed_to_admin_agreement': True,
    }

  for i in range(10):
    org_app_properties['key_name'] = 'google/gsoc2009/org_%04d' % i
    org_app_properties['link_id'] = 'org_%04d' % i
    org_app_properties['name'] = 'Org App %04d' % i
    entity = OrgApplication(**org_app_properties)
    entity.put()


  org_app_properties['status'] = 'pre-rejected'

  for i in range(10, 20):
    org_app_properties['key_name'] = 'google/gsoc2009/loser_%d' % i
    org_app_properties['link_id'] = 'loser_%d' % i
    org_app_properties['name'] = 'Loser %d' % i
    entity = OrgApplication(**org_app_properties)
    entity.put()


  group_properties.update({
    'key_name': 'google/ghop2009/melange',
    'link_id': 'melange',
    'name': 'Melange Development Team',
    'short_name': 'Melange',
    'scope_path': 'google/ghop2009',
    'scope': ghop2009,
    'home_page': 'http://code.google.com/p/soc',
    'description': 'Melange, share the love!',
    'license_name': 'Apache License',
    'ideas': 'http://code.google.com/p/soc/issues',
    })

  melange = Organization(**group_properties)
  melange.put()
  # create a new ranker
  ranker_root_logic.create(student_proposal.DEF_RANKER_NAME, melange,
      student_proposal.DEF_SCORE, 100)


  group_properties.update({
    'scope_path': 'google/gsoc2009',
    'scope': gsoc2009,
    })

  for i in range(15):
    group_properties.update({
        'key_name': 'google/gsoc2009/org_%d' % i,
        'link_id': 'org_%d' % i,
        'name': 'Organization %d' % i,
        'short_name': 'Org %d' % i,
        'description': 'Organization %d!' % i,
        })

    entity = Organization(**group_properties)
    entity.put()
    # create a new ranker
    ranker_root_logic.create(student_proposal.DEF_RANKER_NAME, entity,
        student_proposal.DEF_SCORE, 100)

    if i < 2:
      role_properties.update({
          'key_name': 'google/gsoc2009/org_%d/test' % i,
          'link_id': 'test',
          'scope_path': 'google/gsoc2009/org_%d' % i,
          'scope': entity,
          'program': gsoc2009,
          })

      # Admin for the first org
      if i == 0:
        org_1_admin = OrgAdmin(**role_properties)
        org_1_admin.put()

      # Only a mentor for the second org
      if i == 1:
        org_1_mentor = Mentor(**role_properties)
        org_1_mentor.put()

  role_properties.update({
      'key_name': 'google/ghop2009/melange/test',
      'link_id': 'test',
      'scope_path': 'google/ghop2009/melange',
      'scope': melange,
      'program': ghop2009,
      })

  melange_admin = OrgAdmin(**role_properties)
  melange_admin.put()

  melange_mentor = Mentor(**role_properties)
  melange_mentor.put()


  document_properties = {
      'key_name': 'site/site/home',
      'link_id': 'home',
      'scope_path': 'site',
      'scope': site,
      'prefix': 'site',
      'author': current_user,
      'title': 'Home Page',
      'short_name': 'Home',
      'content': 'This is the Home Page',
      'modified_by': current_user,
      }

  home_document = Document(**document_properties)
  home_document.put()


  document_properties = {
      'key_name': 'user/test/notes',
      'link_id': 'notes',
      'scope_path': 'test',
      'scope': current_user,
      'prefix': 'user',
      'author': current_user,
      'title': 'My Notes',
      'short_name': 'Notes',
      'content': 'These are my notes',
      'modified_by': current_user,
      }

  notes_document = Document(**document_properties)
  notes_document.put()

  site.home = home_document
  site.put()
  # pylint: disable-msg=E1101
  memcache.flush_all()

  return http.HttpResponse('Done')