def office_list_view(request): authority_required = {'verified_volunteer'} # admin, verified_volunteer if not voter_has_authority(request, authority_required): return redirect_to_sign_in_page(request, authority_required) messages_on_stage = get_messages(request) google_civic_election_id = convert_to_int(request.GET.get('google_civic_election_id', 0)) office_list_manager = ContestOfficeListManager() updated_office_list = [] results = office_list_manager.retrieve_all_offices_for_upcoming_election(google_civic_election_id, True) if results['office_list_found']: office_list = results['office_list_objects'] for office in office_list: office.candidate_count = fetch_candidate_count_for_office(office.id) updated_office_list.append(office) election_list = Election.objects.order_by('-election_day_text') template_values = { 'messages_on_stage': messages_on_stage, 'office_list': updated_office_list, 'election_list': election_list, 'google_civic_election_id': google_civic_election_id, } return render(request, 'office/office_list.html', template_values)
def office_list_view(request): authority_required = {'verified_volunteer'} # admin, verified_volunteer if not voter_has_authority(request, authority_required): return redirect_to_sign_in_page(request, authority_required) messages_on_stage = get_messages(request) google_civic_election_id = convert_to_int( request.GET.get('google_civic_election_id', 0)) office_list_manager = ContestOfficeListManager() updated_office_list = [] results = office_list_manager.retrieve_all_offices_for_upcoming_election( google_civic_election_id, True) if results['office_list_found']: office_list = results['office_list_objects'] for office in office_list: office.candidate_count = fetch_candidate_count_for_office( office.id) updated_office_list.append(office) election_list = Election.objects.order_by('-election_day_text') template_values = { 'messages_on_stage': messages_on_stage, 'office_list': updated_office_list, 'election_list': election_list, 'google_civic_election_id': google_civic_election_id, } return render(request, 'office/office_list.html', template_values)
def ballot_item_options_retrieve_for_api(google_civic_election_id=0): """ This function returns a normalized list of candidates and measures so we can pre-populate form fields. Not specific to one voter. :param google_civic_election_id: :return: """ status = "" try: candidate_list_object = CandidateCampaignListManager() results = candidate_list_object.retrieve_all_candidates_for_upcoming_election( google_civic_election_id) candidate_success = results['success'] status += results['status'] candidate_list = results['candidate_list_light'] except Exception as e: status += 'FAILED ballot_item_options_retrieve_for_api, candidate_list. ' \ '{error} [type: {error_type}]'.format(error=e, error_type=type(e)) handle_exception(e, logger=logger, exception_message=status) candidate_list = [] candidate_success = False try: office_list_object = ContestOfficeListManager() results = office_list_object.retrieve_all_offices_for_upcoming_election( google_civic_election_id) office_success = results['success'] status += ' ' + results['status'] office_list = results['office_list_light'] except Exception as e: status += 'FAILED ballot_item_options_retrieve_for_api, office_list. ' \ '{error} [type: {error_type}]'.format(error=e, error_type=type(e)) handle_exception(e, logger=logger, exception_message=status) office_list = [] office_success = False try: measure_list_object = ContestMeasureList() results = measure_list_object.retrieve_all_measures_for_upcoming_election( google_civic_election_id) measure_success = results['success'] status += ' ' + results['status'] measure_list = results['measure_list_light'] except Exception as e: status += 'FAILED ballot_item_options_retrieve_for_api, measure_list. ' \ '{error} [type: {error_type}]'.format(error=e, error_type=type(e)) handle_exception(e, logger=logger, exception_message=status) measure_list = [] measure_success = False ballot_items_to_display = [] if candidate_success and len(candidate_list): for candidate in candidate_list: ballot_items_to_display.append(candidate.copy()) if office_success and len(office_list): for office in office_list: ballot_items_to_display.append(office.copy()) if measure_success and len(measure_list): for measure in measure_list: ballot_items_to_display.append(measure.copy()) json_data = { 'status': status, 'success': candidate_success or measure_success, 'ballot_item_list': ballot_items_to_display, 'google_civic_election_id': google_civic_election_id, } results = { 'status': status, 'success': candidate_success or measure_success, 'google_civic_election_id': google_civic_election_id, # We want to save google_civic_election_id in cookie 'json_data': json_data, } return results
def ballot_item_options_retrieve_for_api(google_civic_election_id=0): """ This function returns a normalized list of candidates and measures so we can pre-populate form fields. Not specific to one voter. :param google_civic_election_id: :return: """ status = "" try: candidate_list_object = CandidateCampaignListManager() results = candidate_list_object.retrieve_all_candidates_for_upcoming_election(google_civic_election_id) candidate_success = results['success'] status += results['status'] candidate_list = results['candidate_list_light'] except Exception as e: status += 'FAILED ballot_item_options_retrieve_for_api, candidate_list. ' \ '{error} [type: {error_type}]'.format(error=e, error_type=type(e)) handle_exception(e, logger=logger, exception_message=status) candidate_list = [] candidate_success = False try: office_list_object = ContestOfficeListManager() results = office_list_object.retrieve_all_offices_for_upcoming_election(google_civic_election_id) office_success = results['success'] status += ' ' + results['status'] office_list = results['office_list_light'] except Exception as e: status += 'FAILED ballot_item_options_retrieve_for_api, office_list. ' \ '{error} [type: {error_type}]'.format(error=e, error_type=type(e)) handle_exception(e, logger=logger, exception_message=status) office_list = [] office_success = False try: measure_list_object = ContestMeasureList() results = measure_list_object.retrieve_all_measures_for_upcoming_election(google_civic_election_id) measure_success = results['success'] status += ' ' + results['status'] measure_list = results['measure_list_light'] except Exception as e: status += 'FAILED ballot_item_options_retrieve_for_api, measure_list. ' \ '{error} [type: {error_type}]'.format(error=e, error_type=type(e)) handle_exception(e, logger=logger, exception_message=status) measure_list = [] measure_success = False ballot_items_to_display = [] if candidate_success and len(candidate_list): for candidate in candidate_list: ballot_items_to_display.append(candidate.copy()) if office_success and len(office_list): for office in office_list: ballot_items_to_display.append(office.copy()) if measure_success and len(measure_list): for measure in measure_list: ballot_items_to_display.append(measure.copy()) json_data = { 'status': status, 'success': candidate_success or measure_success, 'ballot_item_list': ballot_items_to_display, 'google_civic_election_id': google_civic_election_id, } results = { 'status': status, 'success': candidate_success or measure_success, 'google_civic_election_id': google_civic_election_id, # We want to save google_civic_election_id in cookie 'json_data': json_data, } return results
def election_migration_view(request): authority_required = {'admin'} # admin, verified_volunteer if not voter_has_authority(request, authority_required): return redirect_to_sign_in_page(request, authority_required) messages_on_stage = get_messages(request) election_manager = ElectionManager() we_vote_election = Election() office_list_manager = ContestOfficeListManager() candidate_list_manager = CandidateCampaignListManager() position_list_manager = PositionListManager() we_vote_election_office_list = [] google_civic_election_office_list = [] results = election_manager.retrieve_we_vote_elections() we_vote_election_list = results['election_list'] state_code_list = [] for election in we_vote_election_list: if election.state_code not in state_code_list: state_code_list.append(election.state_code) google_civic_election = Election() results = election_manager.retrieve_google_civic_elections_in_state_list(state_code_list) google_civic_election_list = results['election_list'] we_vote_election_id = convert_to_int(request.GET.get('we_vote_election_id', 0)) if not positive_value_exists(we_vote_election_id): we_vote_election_id = convert_to_int(request.POST.get('we_vote_election_id', 0)) if positive_value_exists(we_vote_election_id): results = election_manager.retrieve_election(we_vote_election_id) if results['election_found']: we_vote_election = results['election'] return_list_of_objects = True results = office_list_manager.retrieve_all_offices_for_upcoming_election(we_vote_election_id, return_list_of_objects) if results['office_list_found']: we_vote_election_office_list = results['office_list_objects'] # Go through each office and attach a list of candidates under this office we_vote_election_office_list_new = [] for one_office in we_vote_election_office_list: candidate_results = candidate_list_manager.retrieve_all_candidates_for_office(0, one_office.we_vote_id) if candidate_results['candidate_list_found']: candidate_list = candidate_results['candidate_list'] new_candidate_list = [] # Go through candidate_list and find the number of positions saved for each candidate for candidate in candidate_list: retrieve_public_positions = True # The alternate is positions for friends-only position_list = position_list_manager.retrieve_all_positions_for_candidate_campaign( retrieve_public_positions, 0, candidate.we_vote_id) candidate.position_count = len(position_list) # This is wasteful (instead of using count), but ok # Now find the candidates from the Google Civic Election that we might want to transfer data to new_candidate_list.append(candidate) one_office.candidate_list = new_candidate_list else: one_office.candidate_list = [] we_vote_election_office_list_new.append(one_office) google_civic_election_id = convert_to_int(request.GET.get('google_civic_election_id', 0)) if not positive_value_exists(google_civic_election_id): google_civic_election_id = convert_to_int(request.POST.get('google_civic_election_id', 0)) if positive_value_exists(google_civic_election_id): results = election_manager.retrieve_election(google_civic_election_id) if results['election_found']: google_civic_election = results['election'] return_list_of_objects = True results = office_list_manager.retrieve_all_offices_for_upcoming_election(google_civic_election_id, return_list_of_objects) if results['office_list_found']: google_civic_election_office_list = results['office_list_objects'] # We want to transfer the transfer_array = {} transfer_array['wv01off1461'] = "wv02off269" template_values = { 'messages_on_stage': messages_on_stage, 'we_vote_election': we_vote_election, 'we_vote_election_id': we_vote_election_id, 'we_vote_election_list': we_vote_election_list, 'we_vote_election_office_list': we_vote_election_office_list_new, 'google_civic_election': google_civic_election, 'google_civic_election_id': google_civic_election_id, 'google_civic_election_list': google_civic_election_list, 'google_civic_election_office_list': google_civic_election_office_list, } return render(request, 'election/election_migration.html', template_values)
def election_migration_view(request): authority_required = {'admin'} # admin, verified_volunteer if not voter_has_authority(request, authority_required): return redirect_to_sign_in_page(request, authority_required) messages_on_stage = get_messages(request) election_manager = ElectionManager() we_vote_election = Election() office_list_manager = ContestOfficeListManager() candidate_list_manager = CandidateCampaignListManager() position_list_manager = PositionListManager() we_vote_election_office_list = [] google_civic_election_office_list = [] results = election_manager.retrieve_we_vote_elections() we_vote_election_list = results['election_list'] state_code_list = [] for election in we_vote_election_list: if election.state_code not in state_code_list: state_code_list.append(election.state_code) google_civic_election = Election() results = election_manager.retrieve_google_civic_elections_in_state_list( state_code_list) google_civic_election_list = results['election_list'] we_vote_election_id = convert_to_int( request.GET.get('we_vote_election_id', 0)) if not positive_value_exists(we_vote_election_id): we_vote_election_id = convert_to_int( request.POST.get('we_vote_election_id', 0)) if positive_value_exists(we_vote_election_id): results = election_manager.retrieve_election(we_vote_election_id) if results['election_found']: we_vote_election = results['election'] return_list_of_objects = True results = office_list_manager.retrieve_all_offices_for_upcoming_election( we_vote_election_id, return_list_of_objects) if results['office_list_found']: we_vote_election_office_list = results['office_list_objects'] # Go through each office and attach a list of candidates under this office we_vote_election_office_list_new = [] for one_office in we_vote_election_office_list: candidate_results = candidate_list_manager.retrieve_all_candidates_for_office( 0, one_office.we_vote_id) if candidate_results['candidate_list_found']: candidate_list = candidate_results['candidate_list'] new_candidate_list = [] # Go through candidate_list and find the number of positions saved for each candidate for candidate in candidate_list: retrieve_public_positions = True # The alternate is positions for friends-only position_list = position_list_manager.retrieve_all_positions_for_candidate_campaign( retrieve_public_positions, 0, candidate.we_vote_id) candidate.position_count = len( position_list ) # This is wasteful (instead of using count), but ok # Now find the candidates from the Google Civic Election that we might want to transfer data to new_candidate_list.append(candidate) one_office.candidate_list = new_candidate_list else: one_office.candidate_list = [] we_vote_election_office_list_new.append(one_office) google_civic_election_id = convert_to_int( request.GET.get('google_civic_election_id', 0)) if not positive_value_exists(google_civic_election_id): google_civic_election_id = convert_to_int( request.POST.get('google_civic_election_id', 0)) if positive_value_exists(google_civic_election_id): results = election_manager.retrieve_election(google_civic_election_id) if results['election_found']: google_civic_election = results['election'] return_list_of_objects = True results = office_list_manager.retrieve_all_offices_for_upcoming_election( google_civic_election_id, return_list_of_objects) if results['office_list_found']: google_civic_election_office_list = results[ 'office_list_objects'] # We want to transfer the transfer_array = {} transfer_array['wv01off1461'] = "wv02off269" template_values = { 'messages_on_stage': messages_on_stage, 'we_vote_election': we_vote_election, 'we_vote_election_id': we_vote_election_id, 'we_vote_election_list': we_vote_election_list, 'we_vote_election_office_list': we_vote_election_office_list_new, 'google_civic_election': google_civic_election, 'google_civic_election_id': google_civic_election_id, 'google_civic_election_list': google_civic_election_list, 'google_civic_election_office_list': google_civic_election_office_list, } return render(request, 'election/election_migration.html', template_values)