Пример #1
0
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
Пример #2
0
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'
        )