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)
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('/')