Ejemplo n.º 1
0
  def wrapped(self):
    """Decorator wrapper method.
    """
    link_id = clean_link_id(field_name)(self)

    user_entity = User.get_by_key_name(link_id)

    if user_entity:
      # user exists already
      raise forms.ValidationError("There is already a user with this link id.")

    return link_id
Ejemplo n.º 2
0
  def wrapped(self):
    """Decorator wrapper method.
    """
    link_id = clean_link_id(field_name)(self)

    user_entity = User.get_by_key_name(link_id)

    if not user_entity:
      # user does not exist
      raise forms.ValidationError("This user does not exist.")

    return user_entity
Ejemplo n.º 3
0
def seed_survey_answer(request, i):
    """Returns the properties of a student's survey answers.
  """

    ensureUser()
    survey = Survey.get_by_key_name('program/google/gsoc2009/survey_%d' % i)
    user = User.get_by_key_name('user_%d' % i)
    #student = GSoCStudent.get_by_key_name('google/gsoc2009/student_%d' % i)

    if not user:
        raise Error('Run seed_many for at least %d users first.' % i)

    if not survey:
        raise Error('Run seed_many for at least %d surveys first.' % i)

    all_properties = []
    scope_path = 'google/gsoc2009/'
    checkbox = 'PickMultipleQ Checkbox 2 for survey_%d' % i
    # pylint: disable=E1103
    for i in range(5):
        #student = GSoCStudent.get_by_key_name('google/gsoc2009/student_%d' % i)
        user = User.get_by_key_name('user_%d' % i)

        properties = {
            'scope_path': scope_path,
            'user': user,
            'project': None,
            '_survey': survey,
            '_fields': {
                'ShortQ': 'Test',
                'SelectionQ': u'SelectionQ Option 2',
                'LongQ': 'Long answer... \n' * 10,
                'PickMultipleQ': checkbox,
            }
        }

        all_properties.append(properties)

    return all_properties
Ejemplo n.º 4
0
def seed_survey_answer(request, i):
  """Returns the properties of a student's survey answers.
  """

  ensureUser()
  survey = Survey.get_by_key_name('program/google/gsoc2009/survey_%d' % i)
  user = User.get_by_key_name('user_%d' % i)
  #student = GSoCStudent.get_by_key_name('google/gsoc2009/student_%d' % i)

  if not user:
    raise Error('Run seed_many for at least %d users first.' % i)

  if not survey:
    raise Error('Run seed_many for at least %d surveys first.' % i)

  all_properties = []
  scope_path = 'google/gsoc2009/'
  checkbox = 'PickMultipleQ Checkbox 2 for survey_%d' % i
  # pylint: disable=E1103
  for i in range(5):
    #student = GSoCStudent.get_by_key_name('google/gsoc2009/student_%d' % i)
    user = User.get_by_key_name('user_%d' % i)

    properties = {
        'scope_path': scope_path,
        'user': user,
        'project': None,
        '_survey': survey,
        '_fields': {'ShortQ':'Test', 'SelectionQ': u'SelectionQ Option 2',
                   'LongQ': 'Long answer... \n' * 10,
                   'PickMultipleQ': checkbox,
                   }
        }

    all_properties.append(properties)

  return all_properties
Ejemplo n.º 5
0
 def convert(self, email, same_user_id=False):
   account = users.User(email=email)
   properties = {
       'account': account,
       'key_name': self.link_id,
       'link_id': self.link_id,
       'name': 'Test user',
       'status': 'valid',
   }
   user = seeder_logic.seed(User, properties)
   if same_user_id:
     user = User.get_by_key_name(self.link_id)
     user.user_id = user.account.user_id()
     user.put()
   return convert_user.convert_user_txn(user.key())
Ejemplo n.º 6
0
def seed_student_proposal(request, i):
    """Returns the properties of a new student proposal.
  """

    ensureUser()
    org = GSoCOrganization.get_by_key_name('google/gsoc2009/org_%d' % i)
    mentor = GSoCMentor.get_by_key_name('google/gsoc2009/org_%d/mentor' % i)
    user = User.get_by_key_name('user_%d' % i)
    student = GSoCStudent.get_by_key_name('google/gsoc2009/student_%d' % i)

    if not user:
        raise Error('Run seed_many for at least %d users first.' % i)

    if not student:
        raise Error('Run seed_many for at least %d students first.' % i)

    if not org:
        raise Error('Run seed_many for at least %d orgs first.' % i)

    if not mentor:
        raise Error('Run seed_many for at least %d mentors first.' % i)

    all_properties = []

    # pylint: disable=E1103
    for i in range(random.randint(5, 20)):
        link_id = 'proposal_%s_%d' % (org.link_id, i)
        scope_path = 'google/gsoc2009/' + user.link_id

        properties = {
            'link_id': link_id,
            'scope_path': scope_path,
            'scope': student,
            'key_name': '%s/%s' % (scope_path, link_id),
            'title': 'The Awesome Proposal %s %d' % (user.link_id, i),
            'abstract':
            'This is an Awesome Proposal, look at its awesomeness!',
            'content': 'Sorry, too Awesome for you to read!',
            'additional_info': 'http://www.zipit.com',
            'mentor': mentor,
            'status': 'pending',
            'org': org,
            'program': org.scope,
        }

        all_properties.append(properties)

    return all_properties
Ejemplo n.º 7
0
def seed_student_proposal(request, i):
  """Returns the properties of a new student proposal.
  """

  ensureUser()
  org = GSoCOrganization.get_by_key_name('google/gsoc2009/org_%d' % i)
  mentor = GSoCMentor.get_by_key_name('google/gsoc2009/org_%d/mentor' % i)
  user = User.get_by_key_name('user_%d' % i)
  student = GSoCStudent.get_by_key_name('google/gsoc2009/student_%d' % i)

  if not user:
    raise Error('Run seed_many for at least %d users first.' % i)

  if not student:
    raise Error('Run seed_many for at least %d students first.' % i)

  if not org:
    raise Error('Run seed_many for at least %d orgs first.' % i)

  if not mentor:
    raise Error('Run seed_many for at least %d mentors first.' % i)

  all_properties = []
  
  # pylint: disable=E1103
  for i in range(random.randint(5, 20)):
    link_id = 'proposal_%s_%d' % (org.link_id, i)
    scope_path = 'google/gsoc2009/' + user.link_id

    properties = {
        'link_id': link_id,
        'scope_path': scope_path,
        'scope': student,
        'key_name': '%s/%s' % (scope_path, link_id),
        'title': 'The Awesome Proposal %s %d' % (user.link_id, i),
        'abstract': 'This is an Awesome Proposal, look at its awesomeness!',
        'content': 'Sorry, too Awesome for you to read!',
        'additional_info': 'http://www.zipit.com',
        'mentor': mentor,
        'status': 'pending',
        'org': org,
        'program': org.scope,
        }

    all_properties.append(properties)

  return all_properties
Ejemplo n.º 8
0
def seed_student(request, i):
  """Returns the properties for a new student entity.
  """

  gsoc2009 = GSoCProgram.get_by_key_name('google/gsoc2009')
  user = User.get_by_key_name('user_%d' % i)

  if not gsoc2009:
    raise Error('Run seed_db first')

  if not user:
    raise Error('Run seed_many for at least %d users first.' % i)

  properties = {
      'key_name':'google/gsoc2009/student_%d' % i,
      'link_id': 'student_%d' % i,
      'scope_path': 'google/gsoc2009',
      'scope': gsoc2009,
      'user' : user,
      'given_name': 'Student %d' % i,
      'surname': 'Last Name',
      '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,
      'school_name': 'School %d' % i,
      'school_country': 'United States',
      'major': 'Computer Science',
      'degree': 'Undergraduate',
      'expected_graduation': 2012,
      'program_knowledge': 'Knowledge %d' % i,
      'school': None,
      'can_we_contact_you': True,
  }

  return properties
Ejemplo n.º 9
0
def seed_student(request, i):
    """Returns the properties for a new student entity.
  """

    gsoc2009 = GSoCProgram.get_by_key_name('google/gsoc2009')
    user = User.get_by_key_name('user_%d' % i)

    if not gsoc2009:
        raise Error('Run seed_db first')

    if not user:
        raise Error('Run seed_many for at least %d users first.' % i)

    properties = {
        'key_name': 'google/gsoc2009/student_%d' % i,
        'link_id': 'student_%d' % i,
        'scope_path': 'google/gsoc2009',
        'scope': gsoc2009,
        'user': user,
        'given_name': 'Student %d' % i,
        'surname': 'Last Name',
        '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,
        'school_name': 'School %d' % i,
        'school_country': 'United States',
        'major': 'Computer Science',
        'degree': 'Undergraduate',
        'expected_graduation': 2012,
        'program_knowledge': 'Knowledge %d' % i,
        'school': None,
        'can_we_contact_you': True,
    }

    return properties
Ejemplo n.º 10
0
  def profileFromKwargs(self, profile_model):
    """Retrieves a profile from kwargs.

    Args:
      profile_model: The datastore model class
    """
    key_name = self.data.kwargs['user']
    self.data.url_user = User.get_by_key_name(key_name)

    if not self.data.url_user:
      raise NotFound('Requested user does not exist')

    fields = ['sponsor', 'program', 'user']
    key_name = '/'.join(self.data.kwargs[i] for i in fields)

    self.data.url_profile = profile_model.get_by_key_name(
        key_name, parent=self.data.url_user)

    if not self.data.url_profile:
      raise NotFound('Requested user does not have a profile')
Ejemplo n.º 11
0
  def checkAccess(self):
    self.data.proposer_user = User.get_by_key_name(self.data.kwargs['student'])

    fields = ['sponsor', 'program', 'student']
    key_name = '/'.join(self.data.kwargs[i] for i in fields)

    self.data.proposer_profile = GSoCProfile.get_by_key_name(
        key_name, parent=self.data.proposer_user)

    if not self.data.proposer_profile:
      raise NotFound('Requested user does not exist')

    self.data.proposal = GSoCProposal.get_by_id(
        int(self.data.kwargs['id']),
        parent=self.data.proposer_profile)

    if not self.data.proposal:
      raise NotFound('Requested proposal does not exist')

    self.data.proposal_org = self.data.proposal.org

    self.check.canAccessProposalEntity()
    self.mutator.commentVisible()
Ejemplo n.º 12
0
    def checkAccess(self):
        self.data.proposer_user = User.get_by_key_name(
            self.data.kwargs['student'])

        fields = ['sponsor', 'program', 'student']
        key_name = '/'.join(self.data.kwargs[i] for i in fields)

        self.data.proposer_profile = GSoCProfile.get_by_key_name(
            key_name, parent=self.data.proposer_user)

        if not self.data.proposer_profile:
            raise NotFound('Requested user does not exist')

        self.data.proposal = GSoCProposal.get_by_id(
            int(self.data.kwargs['id']), parent=self.data.proposer_profile)

        if not self.data.proposal:
            raise NotFound('Requested proposal does not exist')

        self.data.proposal_org = self.data.proposal.org

        self.check.canAccessProposalEntity()
        self.mutator.commentVisible()
Ejemplo n.º 13
0
 def assertUserEqual(self, email):
   user = User.get_by_key_name(self.link_id)
   self.assertEqual(email, user.account.email())
   self.assertTrue(user.account.user_id())
   self.assertEqual(user.account.user_id(), user.user_id)