def save_bill(number, chamber_origin, session):
	bill = Bill()
	bill.number = number
	bill.chamber_origin = chamber_origin
	bill.session = session
	bill_import = Bill_Import_Call(number)
	bill_list = bill_import.billtext
	bill.text = Bill.serialize(bill_list)
	bill.authors = Bill.serialize(bill_import.authors)
	bill.coauthors = Bill.serialize(bill_import.coauthors)
	bill.subjects = Bill.serialize(bill_import.subjects)
	bill.cosponsors = Bill.serialize(bill_import.cosponsors)
	bill.sponsors = Bill.serialize(bill_import.sponsors)
	bill.save()
	save_authors(bill, bill_import.authors)
	save_subjects(bill, bill_import.subjects)
	return(bill)
示例#2
0
def create(request):
  from annotation_app.forms import BillForm

  form = BillForm(request.POST)

  if form.is_valid():
    data = form.cleaned_data
    bill = Bill.objects.filter(chamber_origin = data['chamber_origin'],
      number = data['number'])

    # If you find bill in the database, it is the first element in QuerySet
    if bill:
      bill = bill[0]
    # If bill is not in the database, pull it from TLO website
    else:
      from annotation_app.helpers.bill_scrapers import scrape_bill_text

      bill_text = scrape_bill_text(data)
      if bill_text == None:
        return HttpResponseRedirect('/')

      bill = Bill()
      bill.session = data['session']
      bill.chamber_origin = data['chamber_origin']
      bill.number = data['number']
      bill.text = bill_text

      from annotation_app.helpers.htmllogic import htmltext
      bill.text = htmltext(bill.text)
      bill.save()

    if 'format' in request.POST:
      return HttpResponse(serializers.serialize(request.POST['format'],
        [bill]))
    else:
      return HttpResponseRedirect('/bills/%sB%d/' % (bill.chamber_origin,
        bill.number))

  else:
    return HttpResponseRedirect('/')