def analyze(): from models.contact import Contact from models.voter import Voter contacts = Contact.get_all(dao) probs = { 'reg': [], 'name': [], 'vrec': [], 'addr': [], 'pct': [] } for contact in contacts: if not contact.voter_id: probs['reg'].append(bld_row(contact)) continue voter = Voter.get_one(dao, contact.voter_id) if not voter: matches = Voter.get_by_name(dao, contact.name) if len(matches) == 1: show('No voter registration:', contact, matches[0]) reply = input('Copy voter?').upper() if reply == 'Y': repair(contact, matches[0]) else: probs['vrec'].append(bld_row(contact)) for match in matches: probs['vrec'].append(bld_row(match)) continue if str(contact.name) != str(voter.name): show('Name mismatch:', contact, voter) reply = input('Copy voter?').upper() if reply == 'Y': repair(contact, voter) else: probs['name'].append((bld_row(contact), bld_row(voter))) continue if str(contact.address) != str(voter.address): show('Address mismatch:', contact, voter) reply = input('Copy voter?').upper() if reply == 'Y': repair(contact, voter) else: probs['addr'].append((bld_row(contact), bld_row(voter))) continue if contact.address.precinct_id != voter.address.precinct_id: show('Precinct mismatch:', contact, voter) reply = input('Copy voter?').upper() if reply == 'Y': repair(contact, voter) else: probs['pct'].append((bld_row(contact), bld_row(voter))) return probs
def grid(): if request.method == 'GET': rex = Modification.get() mods = [rec.serialize() for rec in rex] rex = Contact.get_all() contacts = [rec.serialize() for rec in rex] rex = Group.get_all() groups = [rec.serialize() for rec in rex] rex = Membership.get_all() memberships = [rec.serialize() for rec in rex] return render_template( 'contacts/mgt.html', contacts=contacts, groups=groups, members=memberships, modifications=mods, title='Contacts' )