def senate_race(request, cycle, state, term_class): race = get_object_or_404(District, cycle=cycle, state=state, term_class=term_class, office='S') title = race.race_name() candidates = Candidate_Overlay.objects.filter(district=race).filter(Q(total_receipts__gte=1000)|Q(total_expenditures__gte=1000)).exclude(not_seeking_reelection=True).order_by('-total_receipts') outside_spenders = Pac_Candidate.objects.filter(candidate__in=candidates, total_ind_exp__gte=5000).select_related('committee', 'candidate') candidate_list = [x.get('fec_id') for x in candidates.values('fec_id')] cycle_endpoints = get_cycle_endpoints(int(cycle)) recent_ies = SkedE.objects.filter(candidate_id_checked__in=candidate_list, expenditure_amount__gte=1000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end'] ).select_related('candidate_checked').order_by('-expenditure_date_formatted')[:5] # figure out which cycles are available. The current one goes first, because it is being displayed. cycle_values = District.objects.filter(state=state, term_class=term_class, office='S').exclude(cycle=cycle) cycle_list = [race] + list(cycle_values) return render_to_response('datapages/race_detail.html', { 'candidates':candidates, 'title':title, 'race':race, 'outside_spenders':outside_spenders, 'recent_ies':recent_ies, 'cycle_list':cycle_list }, context_instance=RequestContext(request) )
def presidential_race(request): race = get_object_or_404(District, cycle=CURRENT_CYCLE, office='P') title = "2016 Presidential Candidates" candidates = Candidate_Overlay.objects.filter(district=race).filter(Q(total_receipts__gte=100000)|Q(total_expenditures__gte=100000)).exclude(not_seeking_reelection=True).order_by('-cash_on_hand') outside_spenders = Pac_Candidate.objects.filter(candidate__in=candidates, total_ind_exp__gte=100000).select_related('committee', 'candidate') candidate_list = [x.get('fec_id') for x in candidates.values('fec_id')] cycle_endpoints = get_cycle_endpoints(int(CURRENT_CYCLE)) recent_ies = SkedE.objects.filter(candidate_id_checked__in=candidate_list, expenditure_amount__gte=10000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end']).select_related('candidate_checked').order_by('-expenditure_date_formatted')[:5] committees = Committee_Overlay.objects.filter(curated_candidate__in=candidates) committee_ids = [x.get('fec_id') for x in committees.values('fec_id')] recent_filings = new_filing.objects.filter(fec_id__in=committee_ids, is_superceded=False).exclude(coverage_to_date__isnull=True).order_by('-coverage_to_date')[:5] # figure out which cycles are available. The current one goes first, because it is being displayed. cycle_list = list_2016_only return render_to_response('datapages/presidential_race_detail.html', { 'candidates':candidates, 'title':title, 'race':race, 'outside_spenders':outside_spenders, 'recent_ies':recent_ies, 'recent_filings':recent_filings, 'cycle_list':cycle_list }, context_instance=RequestContext(request) )
def committee_cycle(request, cycle, committee_id): if not is_valid_four_digit_string_cycle(cycle): # should redirect, but for now: raise Http404 cycle_endpoints = get_cycle_endpoints(int(cycle)) committee_overlay = get_object_or_404(Committee_Overlay, fec_id=committee_id, cycle=int(cycle)) title = committee_overlay.name + " (%s cycle )" % (cycle) report_list = Committee_Time_Summary.objects.filter(com_id=committee_id, coverage_from_date__gte=cycle_endpoints['start'], coverage_from_date__lte=cycle_endpoints['end']).order_by('-coverage_through_date') end_of_coverage_date = committee_overlay.cash_on_hand_date recent_report_list = None if end_of_coverage_date: relevant_date = max(end_of_coverage_date, cycle_endpoints['start']) recent_report_list = new_filing.objects.filter(fec_id=committee_id, coverage_from_date__gte=relevant_date, coverage_to_date__lte=cycle_endpoints['end'], form_type__in=['F5A', 'F5', 'F5N', 'F24', 'F24A', 'F24N', 'F6', 'F6A', 'F6N']).exclude(is_f5_quarterly=True).exclude(is_superceded=True) else: recent_report_list = new_filing.objects.filter(fec_id=committee_id, coverage_from_date__gte=cycle_endpoints['start'], coverage_to_date__lte=cycle_endpoints['end'], form_type__in=['F5A', 'F5', 'F5N', 'F24', 'F24A', 'F24N', 'F6', 'F6A', 'F6N']).exclude(is_f5_quarterly=True).exclude(is_superceded=True) independent_spending = Pac_Candidate.objects.filter(committee=committee_overlay, total_ind_exp__gte=5000, cycle=cycle).select_related('candidate') recent_ies = None if committee_overlay.total_indy_expenditures > 5000: recent_ies = SkedE.objects.filter(filer_committee_id_number=committee_id, expenditure_amount__gte=5000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end']).select_related('candidate_checked').order_by('-expenditure_date_formatted')[:10] # figure out which cycles are available. The current one goes first, because it is being displayed. cycle_values = Committee_Overlay.objects.filter(fec_id=committee_id).exclude(cycle=cycle) cycle_list = [committee_overlay] + list(cycle_values) return render_to_response('datapages/committee_cycle.html', { 'title':title, 'report_list':report_list, 'recent_report_list':recent_report_list, 'committee':committee_overlay, 'independent_spending':independent_spending, 'recent_ies':recent_ies, 'cycle_list':cycle_list, 'cycle':cycle, }, context_instance=RequestContext(request) )
def house_race(request, cycle, state, district): race = get_object_or_404(District, cycle=cycle, state=state, office_district=district, office='H') title = race.race_name() candidates = Candidate_Overlay.objects.filter(district=race).filter( Q(total_receipts__gte=1000) | Q(total_expenditures__gte=1000)).exclude( not_seeking_reelection=True).order_by('-cash_on_hand') outside_spenders = Pac_Candidate.objects.filter( candidate__in=candidates, total_ind_exp__gte=5000).select_related('committee', 'candidate') candidate_list = [x.get('fec_id') for x in candidates.values('fec_id')] cycle_endpoints = get_cycle_endpoints(int(cycle)) recent_ies = SkedE.objects.filter( candidate_id_checked__in=candidate_list, expenditure_amount__gte=1000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end']).select_related( 'candidate_checked').order_by('-expenditure_date_formatted')[:5] committees = Committee_Overlay.objects.filter( curated_candidate__in=candidates) committee_ids = [x.get('fec_id') for x in committees.values('fec_id')] recent_filings = new_filing.objects.filter( fec_id__in=committee_ids, is_superceded=False).exclude( coverage_to_date__isnull=True).order_by('-coverage_to_date')[:5] # figure out which cycles are available. The current one goes first, because it is being displayed. cycle_values = District.objects.filter(state=state, office_district=district, office='H').exclude(cycle=cycle) cycle_list = [race] + list(cycle_values) return render_to_response('datapages/race_detail.html', { 'candidates': candidates, 'title': title, 'race': race, 'outside_spenders': outside_spenders, 'recent_ies': recent_ies, 'recent_filings': recent_filings, 'cycle_list': cycle_list }, context_instance=RequestContext(request))
def candidate_cycle(request, slug, candidate_id, cycle): if not is_valid_four_digit_string_cycle(cycle): raise Http404 # figure out which cycles are available. The current one goes first, because it is being displayed. cycles = Candidate_Overlay.objects.filter(fec_id=candidate_id) candidate_overlay = None try: candidate_overlay = cycles.get(cycle=cycle) except Candidate_Overlay.DoesNotExist: if len(cycles) > 0: candidate_overlay = cycles.order_by('-cycle')[0] return redirect("/candidate/%s/%s/%s/" % (candidate_overlay.cycle, slug, candidate_id)) else: raise Http404 other_cycles = cycles.exclude(cycle=cycle) cycle_list = [candidate_overlay] + list(other_cycles) cycle_endpoints = get_cycle_endpoints(int(cycle)) title = "%s (%s) (%s cycle)" % (candidate_overlay.name, candidate_overlay.party, cycle) authorized_committee_list = Authorized_Candidate_Committees.objects.filter(candidate_id=candidate_id, cycle=cycle) committee_list = [x.get('committee_id') for x in authorized_committee_list.values('committee_id')] report_list = Committee_Time_Summary.objects.filter(com_id__in=committee_list, coverage_from_date__gte=cycle_endpoints['start'], coverage_through_date__lte=cycle_endpoints['end']).order_by('-coverage_through_date') end_of_coverage_date = None recent_report_list = None if report_list: end_of_coverage_date = report_list[0].coverage_through_date recent_report_total = 0 if end_of_coverage_date: recent_report_list = new_filing.objects.filter(fec_id__in=committee_list, coverage_from_date__gte=end_of_coverage_date, coverage_to_date__lte=cycle_endpoints['end'], form_type__in=['F6', 'F6A', 'F6N']).exclude(is_superceded=True) if recent_report_list: recent_report_total = recent_report_list.aggregate(spending_total=Sum('tot_raised'))['spending_total'] else: recent_report_list = new_filing.objects.filter(fec_id__in=committee_list, coverage_from_date__gte=cycle_endpoints['start'], coverage_to_date__lte=cycle_endpoints['end'], form_type__in=['F6', 'F6A', 'F6N']).exclude(is_superceded=True) # are their outside groups who've spent for/against this candidate? outside_spenders = Pac_Candidate.objects.filter(candidate=candidate_overlay, cycle=cycle, total_ind_exp__gte=1000).select_related('committee') recent_ies = None if outside_spenders: recent_ies = SkedE.objects.filter(candidate_checked=candidate_overlay, expenditure_amount__gte=5000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end'] ).select_related('candidate_checked').order_by('-expenditure_date_formatted')[:10] return render_to_response('datapages/candidate.html', { 'title':title, 'report_list':report_list, 'candidate':candidate_overlay, 'authorized_committee_list':authorized_committee_list, 'outside_spenders':outside_spenders, 'recent_report_list':recent_report_list, 'recent_ies':recent_ies, 'recent_report_total':recent_report_total, 'cycle_list':cycle_list, 'current_cycle':cycle }, context_instance=RequestContext(request) )
def candidate_cycle(request, slug, candidate_id, cycle): if not is_valid_four_digit_string_cycle(cycle): raise Http404 # figure out which cycles are available. The current one goes first, because it is being displayed. cycles = Candidate_Overlay.objects.filter(fec_id=candidate_id) candidate_overlay = None try: candidate_overlay = cycles.get(cycle=cycle) except Candidate_Overlay.DoesNotExist: if len(cycles) > 0: candidate_overlay = cycles.order_by('-cycle')[0] return redirect("/candidate/%s/%s/%s/" % (candidate_overlay.cycle, slug, candidate_id)) else: raise Http404 other_cycles = cycles.exclude(cycle=cycle) cycle_list = [candidate_overlay] + list(other_cycles) cycle_endpoints = get_cycle_endpoints(int(cycle)) title = "%s (%s) (%s cycle)" % (candidate_overlay.name, candidate_overlay.party, cycle) authorized_committee_list = Authorized_Candidate_Committees.objects.filter( candidate_id=candidate_id, cycle=cycle) committee_list = [ x.get('committee_id') for x in authorized_committee_list.values('committee_id') ] report_list = Committee_Time_Summary.objects.filter( com_id__in=committee_list, coverage_from_date__gte=cycle_endpoints['start'], coverage_through_date__lte=cycle_endpoints['end']).order_by( '-coverage_through_date') end_of_coverage_date = None recent_report_list = None if report_list: end_of_coverage_date = report_list[0].coverage_through_date recent_report_total = 0 if end_of_coverage_date: recent_report_list = new_filing.objects.filter( fec_id__in=committee_list, coverage_from_date__gte=end_of_coverage_date, coverage_to_date__lte=cycle_endpoints['end'], form_type__in=['F6', 'F6A', 'F6N']).exclude(is_superceded=True) if recent_report_list: recent_report_total = recent_report_list.aggregate( spending_total=Sum('tot_raised'))['spending_total'] else: recent_report_list = new_filing.objects.filter( fec_id__in=committee_list, coverage_from_date__gte=cycle_endpoints['start'], coverage_to_date__lte=cycle_endpoints['end'], form_type__in=['F6', 'F6A', 'F6N']).exclude(is_superceded=True) # are their outside groups who've spent for/against this candidate? outside_spenders = Pac_Candidate.objects.filter( candidate=candidate_overlay, cycle=cycle, total_ind_exp__gte=1000).select_related('committee') recent_ies = None if outside_spenders: recent_ies = SkedE.objects.filter( candidate_checked=candidate_overlay, expenditure_amount__gte=5000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end'] ).select_related('candidate_checked').order_by( '-expenditure_date_formatted')[:10] return render_to_response('datapages/candidate.html', { 'title': title, 'report_list': report_list, 'candidate': candidate_overlay, 'authorized_committee_list': authorized_committee_list, 'outside_spenders': outside_spenders, 'recent_report_list': recent_report_list, 'recent_ies': recent_ies, 'recent_report_total': recent_report_total, 'cycle_list': cycle_list, 'current_cycle': cycle }, context_instance=RequestContext(request))
def committee_cycle(request, cycle, committee_id): if not is_valid_four_digit_string_cycle(cycle): # should redirect, but for now: raise Http404 cycle_endpoints = get_cycle_endpoints(int(cycle)) committee_overlay = get_object_or_404(Committee_Overlay, fec_id=committee_id, cycle=int(cycle)) title = committee_overlay.name + " (%s cycle )" % (cycle) report_list = Committee_Time_Summary.objects.filter( com_id=committee_id, coverage_from_date__gte=cycle_endpoints['start'], coverage_from_date__lte=cycle_endpoints['end']).order_by( '-coverage_through_date') end_of_coverage_date = committee_overlay.cash_on_hand_date recent_report_list = None if end_of_coverage_date: relevant_date = max(end_of_coverage_date, cycle_endpoints['start']) recent_report_list = new_filing.objects.filter( fec_id=committee_id, coverage_from_date__gte=relevant_date, coverage_to_date__lte=cycle_endpoints['end'], form_type__in=[ 'F5A', 'F5', 'F5N', 'F24', 'F24A', 'F24N', 'F6', 'F6A', 'F6N' ]).exclude(is_f5_quarterly=True).exclude(is_superceded=True) else: recent_report_list = new_filing.objects.filter( fec_id=committee_id, coverage_from_date__gte=cycle_endpoints['start'], coverage_to_date__lte=cycle_endpoints['end'], form_type__in=[ 'F5A', 'F5', 'F5N', 'F24', 'F24A', 'F24N', 'F6', 'F6A', 'F6N' ]).exclude(is_f5_quarterly=True).exclude(is_superceded=True) independent_spending = Pac_Candidate.objects.filter( committee=committee_overlay, total_ind_exp__gte=5000, cycle=cycle).select_related('candidate') recent_ies = None if committee_overlay.total_indy_expenditures > 5000: recent_ies = SkedE.objects.filter( filer_committee_id_number=committee_id, expenditure_amount__gte=5000, superceded_by_amendment=False, expenditure_date_formatted__gte=cycle_endpoints['start'], expenditure_date_formatted__lte=cycle_endpoints['end'] ).select_related('candidate_checked').order_by( '-expenditure_date_formatted')[:10] # figure out which cycles are available. The current one goes first, because it is being displayed. cycle_values = Committee_Overlay.objects.filter( fec_id=committee_id).exclude(cycle=cycle) cycle_list = [committee_overlay] + list(cycle_values) return render_to_response('datapages/committee_cycle.html', { 'title': title, 'report_list': report_list, 'recent_report_list': recent_report_list, 'committee': committee_overlay, 'independent_spending': independent_spending, 'recent_ies': recent_ies, 'cycle_list': cycle_list, 'cycle': cycle, }, context_instance=RequestContext(request))