Пример #1
0
  def post(self):
    """Edits records from commands received by the list code.
    """
    post_data = self.request.POST

    if not post_data.get('button_id', None) == 'save':
      raise BadRequest('No valid POST data found')

    data = self.data.POST.get('data')
    if not data:
      raise BadRequest('Missing data')

    parsed = simplejson.loads(data)
    self.data.redirect.program()
    url = self.data.redirect.urlOf('create_gci_org_profile', full=True)

    for id, properties in parsed.iteritems():
      record = OrgAppRecord.get_by_id(long(id))

      if not record:
        logging.warning('%s is an invalid OrgAppRecord ID' %id)
        continue

      if record.survey.key() != self.data.org_app.key():
        logging.warning('%s is not a record for the Org App in the URL' %record.key())
        continue

      new_status = properties['status']
      org_app_logic.setStatus(self.data, record, new_status, url)

    self.response.set_status(200)
Пример #2
0
  def orgAppRecordIfIdInKwargs(self):
    """Sets the organization application in RequestData object.
    """
    assert self.data.org_app

    self.data.org_app_record = None

    id = self.data.kwargs.get('id')
    if id:
      self.data.org_app_record = OrgAppRecord.get_by_id(int(id))

      if not self.data.org_app_record:
        raise NotFound(DEF_NO_ORG_APP % self.data.program.name)
Пример #3
0
    def post(self, data, check, mutator):
        """Edits records from commands received by the list code."""
        post_dict = data.request.POST

        data.redirect.program()

        if (post_dict.get('process',
                          '') == org_app.PROCESS_ORG_APPS_FORM_BUTTON_VALUE):
            mapreduce_control.start_map(
                'ProcessOrgApp', {
                    'program_type': 'gsoc',
                    'program_key': data.program.key().name()
                })
            return data.redirect.to('gsoc_list_org_app_records',
                                    validated=True)

        if post_dict.get('button_id', None) != 'save':
            raise exception.BadRequest(message='No valid POST data found')

        post_data = post_dict.get('data')

        if not post_data:
            raise exception.BadRequest(message='Missing data')

        parsed = json.loads(post_data)

        url = 'TODO(daniel): remove this part as it is not used anymore'

        for oaid, properties in parsed.iteritems():
            record = OrgAppRecord.get_by_id(long(oaid))

            if not record:
                logging.warning('%s is an invalid OrgAppRecord ID', oaid)
                continue

            if record.survey.key() != data.org_app.key():
                logging.warning(
                    '%s is not a record for the Org App in the URL',
                    record.key())
                continue

            new_status = properties['status']
            org_app_logic.setStatus(data, record, new_status, url)

        return http.HttpResponse()
Пример #4
0
    def testOrgAppSurveyTakePage(self):
        """Tests organizationn application survey take/retake page.
    """
        self.updateOrgAppSurvey()

        self.data.createOrgAdmin(self.org)
        backup_admin = GCIProfileHelper(self.gci, self.dev_test)
        backup_admin.createMentor(self.org)

        response = self.get(self.take_url)
        self.assertTemplatesUsed(response)

        params = {
            'admin_id': self.data.user.link_id,
            'backup_admin_id': backup_admin.user.link_id
        }
        params.update(self.post_params)
        response = self.post(self.take_url, params)
        query = OrgAppRecord.all()
        query.filter('main_admin = ', self.data.user)
        self.assertEqual(query.count(), 1, 'Survey record is not created.')

        record = query.get()
        self.assertEqual(record.org_id, self.post_params['org_id'])
        self.assertEqual(record.name, self.post_params['name'])
        self.assertEqual(record.description, self.post_params['description'])
        self.assertEqual(record.license, self.post_params['license'])
        self.assertEqual(record.main_admin.key(), self.data.user.key())
        self.assertEqual(record.backup_admin.key(), backup_admin.user.key())

        retake_url = self.retake_url_raw % (self.gci.key().name(),
                                            record.key().id())
        self.assertResponseRedirect(response, retake_url + '?validated')

        response = self.get(retake_url)
        self.assertResponseOK(response)

        params = {'backup_admin_id': backup_admin.user.link_id}
        params.update(self.post_params)
        params['name'] = 'New title'

        response = self.post(retake_url, params)
        self.assertResponseRedirect(response, retake_url + '?validated')
        record = OrgAppRecord.get_by_id(record.key().id())
        self.assertEqual(record.name, params['name'])
Пример #5
0
  def testOrgAppSurveyTakePage(self):
    """Tests organizationn application survey take/retake page.
    """
    self.updateOrgAppSurvey()

    self.data.createOrgAdmin(self.org)
    backup_admin = GCIProfileHelper(self.gci, self.dev_test)
    backup_admin.createMentor(self.org)

    response = self.get(self.take_url)
    self.assertTemplatesUsed(response)

    params = {'admin_id': self.data.user.link_id,
              'backup_admin_id': backup_admin.user.link_id}
    params.update(self.post_params)
    response = self.post(self.take_url, params)
    query = OrgAppRecord.all()
    query.filter('main_admin = ', self.data.user)
    self.assertEqual(query.count(), 1, 'Survey record is not created.')

    record = query.get()
    self.assertEqual(record.org_id, self.post_params['org_id'])
    self.assertEqual(record.name, self.post_params['name'])
    self.assertEqual(record.description, self.post_params['description'])
    self.assertEqual(record.license, self.post_params['license'])
    self.assertEqual(record.main_admin.key(), self.data.user.key())
    self.assertEqual(record.backup_admin.key(), backup_admin.user.key())

    retake_url = self.retake_url_raw % (self.gci.key().name(),
                                        record.key().id())
    self.assertResponseRedirect(response, retake_url + '?validated')

    response = self.get(retake_url)
    self.assertResponseOK(response)

    params = {'backup_admin_id': backup_admin.user.link_id}
    params.update(self.post_params)
    params['name'] = 'New title'

    response = self.post(retake_url, params)
    self.assertResponseRedirect(response, retake_url + '?validated')
    record = OrgAppRecord.get_by_id(record.key().id())
    self.assertEqual(record.name, params['name'])
Пример #6
0
  def post(self, data, check, mutator):
    """Edits records from commands received by the list code."""
    post_dict = data.request.POST

    data.redirect.program()

    if (post_dict.get('process', '') ==
        org_app.PROCESS_ORG_APPS_FORM_BUTTON_VALUE):
      mapreduce_control.start_map('ProcessOrgApp', {
          'program_type': 'gci',
          'program_key': data.program.key().name()
          })
      return data.redirect.to(
          url_names.GCI_LIST_ORG_APP_RECORDS, validated=True)

    if post_dict.get('button_id', None) != 'save':
      raise exception.BadRequest(message='No valid POST data found')

    post_data = post_dict.get('data')
    if not post_data:
      raise exception.BadRequest(message='Missing data')

    parsed = json.loads(post_data)
    data.redirect.program()
    url = data.redirect.urlOf('create_gci_org_profile', full=True)

    for oaid, properties in parsed.iteritems():
      record = OrgAppRecord.get_by_id(long(oaid))

      if not record:
        logging.warning('%s is an invalid OrgAppRecord ID', oaid)
        continue

      if record.survey.key() != data.org_app.key():
        logging.warning(
            '%s is not a record for the Org App in the URL', record.key())
        continue

      new_status = properties['status']
      org_app_logic.setStatus(data, record, new_status, url)

    return http.HttpResponse()