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)
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)
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()
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'])
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'])
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()