def GET(self, bill_id, format=None): if bill_id == "" or bill_id == "index": i = web.input(page=0) return bill_list(format, int(i.page)) try: b = db.select('bill', where='id=$bill_id', vars=locals())[0] except IndexError: raise web.notfound b.sponsorname = polname_by_id(b.sponsor) b.interest_group_support = interest_group_support(bill_id) b.votes_by_party = votes_by_party(bill_id) out = apipublish.publish({ 'uri': 'http://watchdog.net/b/' + bill_id, 'type': 'Bill', 'session title summary sponsor' : apipublish.identity, 'interest_group_support': apipublish.table({ 'longname support': apipublish.identity}), }, [b], format) if out: return out return render.bill(b)
def GET(self, polid, format=None): if polid != polid.lower(): raise web.seeother('/p/' + polid.lower()) if polid == "" or polid == "index": p = db.select(['politician'], order='district asc').list() out = apipublish.publish({ 'uri': apipublish.generic(lambda x: 'http://watchdog.net/p/' + x.id), 'type': 'Politician', 'district': lambda x: apipublish.URI('http://watchdog.net/us/' + x.lower()), 'wikipedia': apipublish.URI, }, p, format) if out is not False: return out return render.pollist(p) try: p = db.select(['politician', 'district'], what=("politician.*, " "district.center_lat as d0, " "district.center_lng as d1, " "district.zoom_level as d2"), where=('id=$polid AND ' 'district.name = politician.district'), vars=locals())[0] except IndexError: raise web.notfound p.fec_ids = [x.fec_id for x in db.select('politician_fec_ids', what='fec_id', where='politician_id=$polid', vars=locals())] p.interest_group_rating = interest_group_ratings(polid) p.interest_group_table = interest_group_table(p.interest_group_rating) p.related_groups = group_politician_similarity(polid) p.sponsored_bills = bills_sponsored(polid) out = apipublish.publish({ 'uri': 'http://watchdog.net/p/' + polid, 'type': 'Politician', 'district': apipublish.URI('http://watchdog.net/us/' + p.district.lower()), 'wikipedia photo_credit_url officeurl': apipublish.URI, 'interest_group_rating': apipublish.table({ 'year groupname longname rating': apipublish.identity}), 'related_groups' : apipublish.table({ 'longname': apipublish.identity, 'num_bills_agreed': apipublish.generic(lambda g: g.agreed), 'num_bills_voted': apipublish.generic(lambda g: g.total), 'agreement_percent': apipublish.generic(lambda g: int(g.agreement * 100)), 'group_politician_url': apipublish.generic(lambda g: 'http://watchdog.net/p/%s/%s' % (polid, g.id)) }), 'sponsored_bills': apipublish.table({ 'id': apipublish.generic(lambda b: '%s. %s' % (b.type.upper(), b.number)), 'session title introduced': apipublish.identity, 'url': apipublish.generic(lambda b: 'http://watchdog.net/b/%s' % (b.id)) }), 'bioguideid opensecretsid govtrackid gender birthday firstname ' 'middlename lastname party religion photo_path ' 'photo_credit_text ' 'amt_earmark_requested n_earmark_requested n_earmark_received ' 'amt_earmark_received ' 'n_bills_introduced n_bills_enacted n_bills_debated ' 'n_bills_cosponsored ' 'icpsrid nominate predictability ' 'n_speeches words_per_speech ' 'fec_ids money_raised pct_spent pct_self ' 'pct_indiv pct_pac': apipublish.identity, }, [p], format) if out: return out return render.politician(p)