def mom_commit(request, abbr): actions = [] leg1 = request.POST['leg1'] leg2 = request.POST['leg2'] leg1 = db.legislators.find_one({'_id': leg1}) actions.append("Loaded Legislator '%s as `leg1''" % leg1['leg_id']) leg2 = db.legislators.find_one({'_id': leg2}) actions.append("Loaded Legislator '%s as `leg2''" % leg2['leg_id']) # XXX: Re-direct on None merged, remove = merge_legislators(leg1, leg2) actions.append("Merged Legislators as '%s'" % merged['leg_id']) db.legislators.remove({'_id': remove}, safe=True) actions.append("Deleted Legislator (which had the ID of %s)" % remove) db.legislators.save(merged, safe=True) actions.append("Saved Legislator %s with merged data" % merged['leg_id']) for attr in merged: merged[attr] = _mom_mangle(merged[attr]) return render(request, 'billy/mom_commit.html', { "merged": merged, "actions": actions, "abbr": abbr })
def mom_merge(request, abbr): leg1 = "leg1" leg2 = "leg2" leg1 = request.GET[leg1] leg2 = request.GET[leg2] leg1_db = db.legislators.find_one({"_id": leg1}) leg2_db = db.legislators.find_one({"_id": leg2}) # XXX: break this out into its own error page if leg1_db is None or leg2_db is None: nonNull = leg1_db if leg1_db is None else leg2_db if nonNull is not None: nonID = leg1 if nonNull["_id"] == leg1 else leg2 else: nonID = None return render( request, "billy/mom_error.html", { "leg1": leg1, "leg2": leg2, "leg1_db": leg1_db, "leg2_db": leg2_db, "same": nonNull, "sameid": nonID, "abbr": abbr, }, ) leg1, leg2 = leg1_db, leg2_db merge, toRemove = merge_legislators(leg1, leg2) mv, mv_info = _mom_attr_diff(merge, leg1, leg2) for foo in [leg1, leg2, merge]: for attr in foo: foo[attr] = _mom_mangle(foo[attr]) return render( request, "billy/mom_merge.html", { "leg1": leg1, "leg2": leg2, "merge": merge, "merge_view": mv, "remove": toRemove, "merge_view_info": mv_info, "abbr": abbr, }, )
def mom_merge(request, abbr): leg1 = "leg1" leg2 = "leg2" leg1 = request.GET[leg1] leg2 = request.GET[leg2] leg1_db = db.legislators.find_one({'_id': leg1}) leg2_db = db.legislators.find_one({'_id': leg2}) # XXX: break this out into its own error page if leg1_db is None or leg2_db is None: nonNull = leg1_db if leg1_db is None else leg2_db if nonNull is not None: nonID = leg1 if nonNull['_id'] == leg1 else leg2 else: nonID = None return render( request, 'billy/mom_error.html', { "leg1": leg1, "leg2": leg2, "leg1_db": leg1_db, "leg2_db": leg2_db, "same": nonNull, "sameid": nonID, "abbr": abbr }) leg1, leg2 = leg1_db, leg2_db merge, toRemove = merge_legislators(leg1, leg2) mv, mv_info = _mom_attr_diff(merge, leg1, leg2) for foo in [leg1, leg2, merge]: for attr in foo: foo[attr] = _mom_mangle(foo[attr]) return render( request, 'billy/mom_merge.html', { 'leg1': leg1, 'leg2': leg2, 'merge': merge, 'merge_view': mv, 'remove': toRemove, 'merge_view_info': mv_info, "abbr": abbr })
def mom_merge(request): leg1 = "leg1" leg2 = "leg2" leg1 = request.GET[leg1] leg2 = request.GET[leg2] leg1_db = db.legislators.find_one({'_id' : leg1}) leg2_db = db.legislators.find_one({'_id' : leg2}) if leg1_db == None or leg2_db == None: # XXX: Break this out into it's own # error page. nonNull = leg1_db if leg1_db != None else leg2_db if nonNull != None: nonID = leg1 if nonNull['_id'] == leg1 else leg2 else: nonID = None return render(request, 'billy/mom_error.html', { "leg1" : leg1, "leg2" : leg2, "leg1_db" : leg1_db, "leg2_db" : leg2_db, "same" : nonNull, "sameid" : nonID }) leg1, leg2 = leg1_db, leg2_db merge, toRemove = merge_legislators( leg1, leg2 ) mv, mv_info = _mom_attr_diff( merge, leg1, leg2 ) for foo in [ leg1, leg2, merge ]: for attr in foo: foo[attr] = _mom_mangle( foo[attr] ) return render(request, 'billy/mom_merge.html', { 'leg1' : leg1, 'leg2' : leg2, 'merge' : merge, 'merge_view' : mv, 'remove' : toRemove, 'merge_view_info' : mv_info })
def _test_logic(name): leg1, leg2, compare = _load_test_data(name) produced, to_del = merge_legislators(leg1, leg2) assert _check_results(produced, compare)