def AuthenticatedGet(self, org, event): relevant_contacts = Contact.for_event(event) self.response.out.write(template.render( { "contacts": relevant_contacts, }))
def AuthenticatedGet(self, org, event): relevant_contacts = Contact.for_event(event) self.response.out.write( template.render({ "contacts": relevant_contacts, }))
def AuthenticatedGet(self, org, _): global_admin = False local_admin = False if org.name == GLOBAL_ADMIN_NAME: global_admin = True if org.is_admin == True and global_admin == False: local_admin = True if global_admin == False and local_admin == False: self.redirect("/") return # lookup contact try: id = int(self.request.get("contact")) contact = Contact.get_by_id(id) except: self.abort(404) # check authorised if not org.may_administer(contact): self.abort(403) # create form form = ContactFormFull(None, contact) # render template self.response.out.write(template.render({ "contact": contact, "form": form, "organization_name": ( contact.organization.name if contact.organization else None ), "global_admin": global_admin, }))
def AuthenticatedGet(self, org, event): try: contact_id = int(self.request.get("contact", -1)) contact = Contact.get_by_id(contact_id) except: self.abort(404) if not contact: self.abort(404) self.response.out.write(template.render({ "contact": contact, "form": ContactFormFull(None, contact), # use form to iterate fields }))
def AuthenticatedGet(self, org, event): try: contact_id = int(self.request.get("contact", -1)) contact = Contact.get_by_id(contact_id) except: self.abort(404) if not contact: self.abort(404) self.response.out.write( template.render({ "contact": contact, "form": ContactFormFull(None, contact), # use form to iterate fields }))
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 handle(self, org, event): org_id = self.request.get("org") # select contacts relevant_contacts = Contact.for_event(event) if org_id: relevant_contacts = ( contact for contact in relevant_contacts if unicode(contact.organization.key().id()) == org_id ) # write out csv self.response.headers['Content-Type'] = 'text/csv' self.response.headers['Content-Disposition'] = \ 'attachment; filename="crisis_cleanup_contacts.csv"' writer = csv.writer(self.response.out) writer.writerow(Contact.CSV_FIELDS) for contact in relevant_contacts: writer.writerow(contact.ToCsvLine())
def AuthenticatedPost(self, org, _): global_admin = False local_admin = False if org.name == GLOBAL_ADMIN_NAME: global_admin = True if org.is_admin == True and global_admin == False: local_admin = True if global_admin == False and local_admin == False: self.redirect("/") return form = ContactFormFull(self.request.POST) # retrieve contact try: contact_id = int(self.request.get("contact_id")) contact = Contact.get_by_id(contact_id) except: self.abort(404) # check authorised if not org.may_administer(contact): self.abort(403) if form.validate() and not form.errors: # update contact and redirect form.populate_obj(contact) contact.save() self.redirect('/admin-single-contact?contact=%d' % contact.key().id()) else: self.response.out.write(template.render({ "contact": contact, "form": form, "organization_name": ( contact.organization.name if contact.organization else None ), "global_admin": global_admin, }))
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, }))