def people_to_pupa(stream, transaction): org = Organization( name=transaction.jurisdiction.name, classification='legislature', ) for row in stream: # XXX: Validate the row better. name = row.get("Name", "").strip() district = row.get("District", "").strip() if not name: raise ValueError("A name is required for each entry.") if not district: raise ValueError("A district is required for each entry.") obj = Legislator(name=name, district=district) org.add_post(label=district, role="member") for key, keys in [ ("email", ("Email 1", "Email 2", "Email 3")), ("address", ("Address 1", "Address 2", "Address 3")), ("voice", ("Phone 1", "Phone 2", "Phone 3")), ]: for k in keys: value = row.get(k) if value: obj.add_contact_detail(type=key, value=value, note=k) obj.add_source(url=OCD_SOURCE_URL) obj.validate() obj.pre_save(transaction.jurisdiction.id) yield obj for related in obj._related: yield related for related in org._related: yield related yield org
def people_to_pupa(stream, transaction): org = Organization(name=transaction.jurisdiction.name, classification="legislature") for row in stream: # XXX: Validate the row better. name = row.get("Name", "").strip() district = row.get("District", "").strip() if not name: raise ValueError("A name is required for each entry.") if not district: raise ValueError("A district is required for each entry.") obj = Legislator(name=name, district=district) org.add_post(label=district, role="member") for key, keys in [ ("email", ("Email 1", "Email 2", "Email 3")), ("address", ("Address 1", "Address 2", "Address 3")), ("voice", ("Phone 1", "Phone 2", "Phone 3")), ]: for k in keys: value = row.get(k) if value: obj.add_contact_detail(type=key, value=value, note=k) obj.add_source(url=OCD_SOURCE_URL) obj.validate() obj.pre_save(transaction.jurisdiction.id) yield obj for related in obj._related: yield related for related in org._related: yield related yield org