def check_and_write_row(row_d): """ Check and save @row_d, return True if ok and False if failed. """ row_acceptable = bool(row_d['Date Password Provided']) if row_acceptable: # get org query = Query(model_class=Organization) query.filter('name = ', row_d['ORGANIZATION']) org = query.get() if org: try: # write new contact new_contact = Contact( first_name=row_d['First Name'], last_name=row_d['Last Name'], email=row_d['E-MAIL'], phone=row_d['PHONE #'], organization=org, ) new_contact.save() return True except BadValueError, e: pass
def AuthenticatedPost(self, org, event): if not (org.is_global_admin or org.is_local_admin): self.abort(403) try: org_by_id = organization.Organization.get_by_id( int(self.request.get("organization"))) except: self.abort(404) # bail if not allowed if not org.may_administer(org_by_id): self.abort(403) # construct forms incidents = [ # hack to workaround apparent bug in webapp2 re multiple selects Key(v) for k, v in self.request.POST.items() if k.startswith('incidents') ] organization_form, existing_contact_forms, blank_contact_forms = \ self._get_forms(self.request.POST, org, org_by_id, incidents) # remove unused blank contact forms blank_contact_forms = filter(lambda f: any(f.data.values()), blank_contact_forms) for bcf in blank_contact_forms: bcf.has_data = True # validate forms all_forms = [organization_form ] + existing_contact_forms + blank_contact_forms if all(form.validate() for form in all_forms): # update org organization_form.populate_obj(org_by_id) org_by_id.save() # update existing contacts existing_contacts = org_by_id.contacts for contact_form in existing_contact_forms: contact_form_id = \ int(contact_form.id.data) if contact_form.id.data else -1 contact = [ ec for ec in existing_contacts if ec.key().id() == contact_form_id ][0] delete_requested = contact_form.delete_me.data if delete_requested: contact.delete() else: contact_form.populate_obj(contact) contact.save() # create new for contact_form in blank_contact_forms: contact = Contact(organization=org_by_id, first_name=contact_form.first_name.data, last_name=contact_form.last_name.data, title=contact_form.title.data, phone=contact_form.phone.data, email=contact_form.email.data, is_primary=contact_form.is_primary.data) contact.save() self.redirect('/admin-edit-organization?organization=%d' % org_by_id.key().id()) else: self.response.out.write( template.render({ "errors": True, "organization": org_by_id, "organization_form": organization_form, "existing_contact_forms": existing_contact_forms, "blank_contact_forms": blank_contact_forms, }))
def AuthenticatedPost(self, org, event): if not (org.is_global_admin or org.is_local_admin): self.abort(403) try: org_by_id = organization.Organization.get_by_id( int(self.request.get("organization")) ) except: self.abort(404) # bail if not allowed if not org.may_administer(org_by_id): self.abort(403) # construct forms incidents = [ # hack to workaround apparent bug in webapp2 re multiple selects Key(v) for k,v in self.request.POST.items() if k.startswith('incidents') ] organization_form, existing_contact_forms, blank_contact_forms = \ self._get_forms(self.request.POST, org, org_by_id, incidents) # remove unused blank contact forms blank_contact_forms = filter(lambda f: any(f.data.values()), blank_contact_forms) for bcf in blank_contact_forms: bcf.has_data = True # validate forms all_forms = [organization_form] + existing_contact_forms + blank_contact_forms if all(form.validate() for form in all_forms): # update org organization_form.populate_obj(org_by_id) org_by_id.save() # update existing contacts existing_contacts = org_by_id.contacts for contact_form in existing_contact_forms: contact_form_id = \ int(contact_form.id.data) if contact_form.id.data else -1 contact = [ ec for ec in existing_contacts if ec.key().id() == contact_form_id ][0] delete_requested = contact_form.delete_me.data if delete_requested: contact.delete() else: contact_form.populate_obj(contact) contact.save() # create new for contact_form in blank_contact_forms: contact = Contact( organization=org_by_id, first_name=contact_form.first_name.data, last_name=contact_form.last_name.data, title=contact_form.title.data, phone=contact_form.phone.data, email=contact_form.email.data, is_primary=contact_form.is_primary.data ) contact.save() self.redirect('/admin-edit-organization?organization=%d' % org_by_id.key().id()) else: self.response.out.write(template.render({ "errors": True, "organization": org_by_id, "organization_form": organization_form, "existing_contact_forms": existing_contact_forms, "blank_contact_forms": blank_contact_forms, }))